欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
MCU回調(diào)函數(shù)3個(gè)參數(shù)的坑
[打印本頁(yè)]
作者:
gongzhu
時(shí)間:
2020-6-14 17:04
標(biāo)題:
MCU回調(diào)函數(shù)3個(gè)參數(shù)的坑
玩stc15的4串口通信,down了個(gè)單串口通信的案例,改成4串口。里面有個(gè)串口發(fā)送處理的回調(diào)函數(shù),參數(shù)是字符串指針和字符串長(zhǎng)度。
typedef uchar(*MB_SendDatas)(uchar *,uchar) ;
現(xiàn)在4串口需增加個(gè)串口號(hào)參數(shù):
typedef uchar(*MB_SendDatas)(uchar *,uchar,uchar) ;
編譯報(bào)錯(cuò):error C212: indirect call: parameters do not fit within registers
定義增加了重入 reentrant 編譯能通過,運(yùn)行發(fā)送完正常數(shù)據(jù)后總會(huì)跟一串的0x00,調(diào)試發(fā)現(xiàn)字符串長(zhǎng)度在調(diào)用 MB_SendDatas 之前是正常的,但調(diào)用之后就改變了。
不得已改回原本的兩個(gè)參數(shù),把串口號(hào)改成全局變量測(cè)試正常。
作者:
神出沒
時(shí)間:
2020-6-15 08:38
感覺用51的話,太高級(jí)的C語(yǔ)言特性估計(jì)支持不太好,有沒有大神看看是什么問題
作者:
shushikuan
時(shí)間:
2020-6-16 13:12
本帖最后由 shushikuan 于 2020-6-16 13:41 編輯
使用reentrant 關(guān)鍵字,需要在startup.a51中指定參數(shù)堆棧首地址。比如STC15W408AS 的XRAM是 256字節(jié),在"Large variables in XDATA" 模式時(shí),要寫成 [ XBPSTACKTOP EQU 0FFH+1; 將堆棧頂設(shè)置為最高地址+1. ]
作者:
2207825975
時(shí)間:
2020-6-16 15:12
是的,我也經(jīng)常遇到這種問題
作者:
2207825975
時(shí)間:
2020-6-16 15:12
是的,我也經(jīng)常遇到這種問題
作者:
淡定120
時(shí)間:
2020-8-20 14:19
一樣的問題
作者:
jjwangxu2008
時(shí)間:
2020-8-21 13:09
是的,我也經(jīng)常遇到這種問題
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1