找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1670|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

電腦向MSP430單片機如何發(fā)送數(shù)據(jù)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1038977 發(fā)表于 2023-7-25 21:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
板子:msp430f5529lp單片機
我想用電腦通過串口給430發(fā)送字符串,然后再在oled顯示屏上顯示出來,我的思路就是在串口中斷里給一個變量,然后把收緩存區(qū)的值賦給這個變量,然后調(diào)用OLED相應(yīng)語句在中斷把這個變量顯示出來,電腦發(fā)一次,顯示一次,但是我這樣實施的時候,卻出現(xiàn)了問題,我開始是用ShowNum來顯示的,這個是顯示數(shù)字的,但是我發(fā)現(xiàn)我發(fā)送什么值他都只能顯示這個值的ACSI碼值,我發(fā)字符,他顯示ACSI碼還說的過去,我發(fā)數(shù)字,他卻顯示別的數(shù)字,我估計是根據(jù)ACSI碼什么換算過去的,反正顯示出來的數(shù)字和我發(fā)出去的數(shù)字不一樣,然后我用ShowString函數(shù)來顯示變量,他可以顯示我發(fā)的字符和對應(yīng)的數(shù)字,并且是正確的,但是問題在于他每次只能接收一位,什么意思呢,就比如我在電腦發(fā)送端發(fā)送128,他只能顯示1,之后我把發(fā)送框里的1刪掉,也就是發(fā)送28,他就會顯示2,而且是在之前1顯示的旁邊顯示2,就位置是對的,如果我一個一個的發(fā),oled可以顯示128,同樣的字符也是這樣,也必須一個一個發(fā),每次都是一個字節(jié),我開始還嘗試過把變量定義為數(shù)組型,但依舊沒有什么改變,徒勞無功,希望可以得到解決辦法,感謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:744809 發(fā)表于 2023-7-26 08:38 | 只看該作者
把代碼貼出來看看,串口中斷里接收數(shù)據(jù),一字節(jié)一字節(jié)接收,存放在數(shù)組中,可以用空閑中斷或者幀尾來識別有沒有接收完畢。定義一個接收完畢變量,一旦接收完了就賦值成1,在while循環(huán)中一直判斷該變量是否為1,為1則將接收到的數(shù)據(jù)顯示出來。
回復(fù)

使用道具 舉報

板凳
ID:1038977 發(fā)表于 2023-7-26 09:50 | 只看該作者
123156fsadf 發(fā)表于 2023-7-26 08:38
把代碼貼出來看看,串口中斷里接收數(shù)據(jù),一字節(jié)一字節(jié)接收,存放在數(shù)組中,可以用空閑中斷或者幀尾來識別有 ...

我這樣應(yīng)該是用幀尾判斷吧,是不是輸入數(shù)據(jù)的時候在數(shù)據(jù)的最后要加上\0啊,我加了或者沒加都沒有顯示,直接發(fā)送\0也沒有反應(yīng)

回復(fù)

使用道具 舉報

地板
ID:301191 發(fā)表于 2023-7-27 01:31 | 只看該作者
頂一下
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表