从程序存储器读取字符串时遇到一些问题:
const char str[] PROGMEM = "Test string here\r\n";
以下是我的打印例程:
/** Send string over UART */
void uart_puts(char* str)
{
while (*str) {
uart_tx(*str++);
}
}
/** Send progmem string over UART */
void uart_puts_pgm(const char* str)
{
char c;
while (0 != (c = pgm_read_byte(&str))) {
uart_tx(c);
str++;
}
}
正常的一个工作正常,但是progmem打印出0xFF
的无限流。错误在哪里?
之前我和progmem一起工作过,而且它总是有效......我似乎无法在这里找到问题。
答案 0 :(得分:0)
噢,我不应该在那里取消引用指针...
pgm_read_byte(&str)
应该只是
pgm_read_byte(str)
现在正在运作。