In file included from C:\Users\Dylan\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.1\cores\arduino/WString.h:29:0,
from C:\Users\Dylan\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.1\cores\arduino/Arduino.h:118,
from sketch\StringExample.ino.cpp:1:
C:\Users\Dylan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Polyfills/pgmspace.hpp: In function ‘void* pgm_read_ptr(ArduinoJson6190_F1::pgm_p)’:
C:\Users\Dylan\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.1\cores\arduino/avr/pgmspace.h:48:61: error: cannot convert ‘ArduinoJson6190_F1::pgm_p’ to ‘const void*’ for argument ‘2’ to ‘void* _memcpy(void*, const void*, SIZE_T)’
#define memcpy_P(dest, src, num) memcpy((dest), (src), (num))
1 Like
hi @dylan8rlt
你是从这个 GitHub 下载的 Library 用吗?
能分享产生 error 的 ino 代码吗?
Hi @dylan8rlt ,
或許你可以去到Ameba Arduino的官方Github上,提交一個issue來要求這個功能,那邊會比較容易討論技術問題,並及時追蹤最新的功能 https://github.com/ambiot/ambd_arduino/issues
通过Arduino软件的库管理器安装的,示例代码也是Example中的,参考StringExample.ino | ArduinoJson 6
Hi @xidameng
好的,谢谢提醒
1 Like
今天搜索相关信息,发现前几天已有人提了类似Issue,目前ArduinoJson官方已完成这个问题的修复。参考:https://github.com/bblanchon/ArduinoJson/issues/1707
1 Like
對 ,只要加一行
#undef memcpy_P
就可以了
本質上就是ArduinoJson lib使用了一個標準庫中的function memcpy_P
, 但是在ArduinoJson中的另一個function pgm_read_ptr
, 它給memcpy_P
傳入了一個錯誤的data type,因此通過#undef memcpy_P
, 我們就可以使用ArduinoJson lib中自帶的memcpy_P
function了,這樣data type的問題就解決了