我在从程序内存中读取字符串时遇到了一些问题:
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++;
}
}普通的可以正常工作,但是程序的打印无限的0xFF流。错误在哪里?
我以前使用过程序,它总是有效的..我似乎找不到问题所在。
发布于 2015-04-24 03:13:23
哦,我不应该取消引用那里的指针...
pgm_read_byte(&str)应该是公正的
pgm_read_byte(str)它现在起作用了。
https://stackoverflow.com/questions/29832297
复制相似问题