首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVR PROGMEM读取垃圾而不是字符串

AVR PROGMEM读取垃圾而不是字符串
EN

Stack Overflow用户
提问于 2015-04-24 03:08:50
回答 1查看 331关注 0票数 0

我在从程序内存中读取字符串时遇到了一些问题:

代码语言:javascript
复制
const char str[] PROGMEM = "Test string here\r\n";

下面是我的打印例程:

代码语言:javascript
复制
/** 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流。错误在哪里?

我以前使用过程序,它总是有效的..我似乎找不到问题所在。

EN

回答 1

Stack Overflow用户

发布于 2015-04-24 03:13:23

哦,我不应该取消引用那里的指针...

代码语言:javascript
复制
pgm_read_byte(&str)

应该是公正的

代码语言:javascript
复制
pgm_read_byte(str)

它现在起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29832297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档