STM32串口接收數(shù)據(jù)保存到數(shù)組——遇到問(wèn)題及解決方法
掃描二維碼
隨時(shí)隨地手機(jī)看文章
遇到問(wèn)題:
PC端發(fā)送給stm32的字符串?dāng)?shù)據(jù),只有最后一個(gè)字節(jié)被保存在數(shù)組的首地址,其他數(shù)據(jù)都丟失,而且數(shù)組中只有首地址有數(shù)據(jù)。
比如我用PC給stm32發(fā)送abcd,返回到PC串口助手的數(shù)據(jù)只有d,查看數(shù)組發(fā)現(xiàn)里面數(shù)據(jù)[d,0,0,0,0,0,0,0,0........]。
解決方案:
錯(cuò)誤的原因是,在中斷服務(wù)函數(shù)中,每次來(lái)數(shù)據(jù)時(shí),數(shù)組地址 t++ 的變量 t 被我定義成了局部變量,導(dǎo)致每次來(lái)中斷時(shí),t都被賦值為0,才導(dǎo)致只有數(shù)組首地址有數(shù)據(jù),且之前的數(shù)據(jù)都被覆蓋。
解決辦法,把數(shù)組地址 t++ 的變量 t 定義為全局變量就ok了