標題: 請教一個關于51單片機串口發(fā)送字符串的問題 [打印本頁]

作者: yang陽    時間: 2018-9-1 22:17
標題: 請教一個關于51單片機串口發(fā)送字符串的問題
我用51發(fā)送字符串時,比如說“12a”,有時候會正確收到,可有時候會收到“2a1”等諸如此類的,不知道大家有沒有遇到過這樣的問題,難不成是程序存在漏洞?
作者: CT任你    時間: 2018-9-2 00:20
你有可能沒有限制這個字符串的長度,或者字符串后面沒有字符串結束,這樣使用51單片機發(fā)送數(shù)據(jù)的時候就會出現(xiàn)數(shù)據(jù)移位的問題,我之前用51和15通信的時候就出現(xiàn)這個問題。
作者: yang陽    時間: 2018-9-2 07:40

引用:

CT任你 發(fā)表于 2018-9-2 00:20
你有可能沒有限制這個字符串的長度,或者字符串后面沒有字符串結束,這樣使用51單片機發(fā)送數(shù)據(jù)的時候就會出 ...

可以麻煩你幫忙給個程序嗎
作者: 小貓貓愛吃魚    時間: 2018-9-2 10:22
很顯然,是你程序的問題
作者: 6744    時間: 2018-9-2 12:31
程序沒有問題的話,多半是波特率設置不對~
作者: 392177410    時間: 2018-9-2 15:40
是給另外一個單片機發(fā)送嗎,那可能另外一個單片機的接收寫的有問題,或者看一下你的字符串是怎么判斷結束的
作者: yang陽    時間: 2018-9-2 16:15

引用:

6744 發(fā)表于 2018-9-2 12:31
程序沒有問題的話,多半是波特率設置不對~

波特率沒有問題
作者: yang陽    時間: 2018-9-2 16:17

引用:

392177410 發(fā)表于 2018-9-2 15:40
是給另外一個單片機發(fā)送嗎,那可能另外一個單片機的接收寫的有問題,或者看一下你的字符串是怎么判斷結束的

我是用labview的visa串口控件接收的,我用了截取字符串,后來也用了匹配模式,有時候就會出現(xiàn)錯位現(xiàn)象,就好像單片機很慢似的,但我換用arduino就沒事了,有些不太明白。
作者: lg2911    時間: 2018-9-2 17:21

引用:

yang陽 發(fā)表于 2018-9-2 16:15
波特率沒有問題

這種能收到字符,但是順序不對的,多半不是波特率問題,波特率錯誤的話,收到的字符是亂的

這種字符正確,順序不對的,多半是軟件問題,是發(fā)送緩沖區(qū)的控制出了問題,檢查下發(fā)送緩沖區(qū)的發(fā)送指針

作者: yang陽    時間: 2018-9-2 22:46

引用:

lg2911 發(fā)表于 2018-9-2 17:21
這種能收到字符,但是順序不對的,多半不是波特率問題,波特率錯誤的話,收到的字符是亂的

這種字符正 ...

好的 謝謝
作者: 咕咕    時間: 2018-9-3 09:37
51單片機的串口,是個全雙工的串口,發(fā)送數(shù)據(jù)的同時,還可以接收數(shù)據(jù)。 當串行發(fā)送完畢后,將在標志位 TI 置 1,同樣,當收到了數(shù)據(jù)后,也會在 RI 置 1。 無論 RI 或 TI 出現(xiàn)了 1,只要串口中斷處于開放狀態(tài),單片機都會進入串口中斷處理程序。 在中斷程序中,要區(qū)分出來究竟是發(fā)送引起的中斷,還是接收引起的中斷,然后分別進行處理。
作者: zhaoyinlo    時間: 2018-9-3 11:32
如果你是  單字符發(fā)送 你可以加下延時
如果是  字符數(shù)組發(fā)送 你可以在發(fā)送之前打印一下   看看自己發(fā)送的是否正確
然后 調試自己代碼

作者: zqy181818    時間: 2018-9-3 14:28
發(fā)送這邊加引導碼與結束碼就可以了
作者: 392177410    時間: 2018-9-3 14:43

引用:

yang陽 發(fā)表于 2018-9-2 16:17
我是用labview的visa串口控件接收的,我用了截取字符串,后來也用了匹配模式,有時候就會出現(xiàn)錯位現(xiàn)象, ...

labview的話每次接收完后要記得清空串口緩沖區(qū)
作者: yang陽    時間: 2018-9-3 15:48

引用:

392177410 發(fā)表于 2018-9-3 14:43
labview的話每次接收完后要記得清空串口緩沖區(qū)

好的 我試試 謝謝

作者: wzl468    時間: 2018-9-3 16:27
加個延時試試




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1