请教一个AVR数组问题

2019-03-24 20:20发布

用的w5500网络芯片+AV:128想实现一个小的WEB服务器。现在要在AVR128的flash中存放页面数组如图1:




但是调用的时候不知道怎么读出来。。。编译的结果显示已经放到flash中如图4


图3这个地方是调用部分:






希望大家帮我看下这个问题怎么解决,谢谢各位
我上网查说在数组名前加pgm_read_byte()如图2:



但是页面结果出不来。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
dcexpert
1楼-- · 2019-03-25 06:14
pgm_read_byte只能读取一个字节。它返回的不是C语言的指针,就是一个char。
pgm_read_word、pgm_read_dword也是类似的,读取出来数据需要自己在处理。
a991123
2楼-- · 2019-03-25 08:20
dcexpert 发表于 2016-5-19 12:26
pgm_read_byte只能读取一个字节。它返回的不是C语言的指针,就是一个char。
pgm_read_word、pgm_read_dwor ...

难道我还从新定义一个局部变量,存放读出来的数组?
dcexpert
3楼-- · 2019-03-25 09:07
长度可以用strlen_P函数判断。

详细的可以看看头文件pgmspace.h内容。
a991123
4楼-- · 2019-03-25 09:15
dcexpert 发表于 2016-5-19 22:04
长度可以用strlen_P函数判断。

详细的可以看看头文件pgmspace.h内容。

好的,谢谢你

一周热门 更多>