找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教一個關(guān)于51單片機(jī)串口發(fā)送字符串的問題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:382067 發(fā)表于 2018-9-1 22:17 來自手機(jī) | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
我用51發(fā)送字符串時,比如說“12a”,有時候會正確收到,可有時候會收到“2a1”等諸如此類的,不知道大家有沒有遇到過這樣的問題,難不成是程序存在漏洞?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:392493 發(fā)表于 2018-9-2 00:20 | 只看該作者
你有可能沒有限制這個字符串的長度,或者字符串后面沒有字符串結(jié)束,這樣使用51單片機(jī)發(fā)送數(shù)據(jù)的時候就會出現(xiàn)數(shù)據(jù)移位的問題,我之前用51和15通信的時候就出現(xiàn)這個問題。

評分

參與人數(shù) 2黑幣 +50 收起 理由
yousunny + 10 贊一個!
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:382067 發(fā)表于 2018-9-2 07:40 來自手機(jī) | 只看該作者
CT任你 發(fā)表于 2018-9-2 00:20
你有可能沒有限制這個字符串的長度,或者字符串后面沒有字符串結(jié)束,這樣使用51單片機(jī)發(fā)送數(shù)據(jù)的時候就會出 ...

可以麻煩你幫忙給個程序嗎
回復(fù)

使用道具 舉報

地板
ID:303383 發(fā)表于 2018-9-2 10:22 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
回復(fù)

使用道具 舉報

5#
ID:392580 發(fā)表于 2018-9-2 12:31 | 只看該作者
程序沒有問題的話,多半是波特率設(shè)置不對~

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:392604 發(fā)表于 2018-9-2 15:40 | 只看該作者
是給另外一個單片機(jī)發(fā)送嗎,那可能另外一個單片機(jī)的接收寫的有問題,或者看一下你的字符串是怎么判斷結(jié)束的

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:382067 發(fā)表于 2018-9-2 16:15 來自手機(jī) | 只看該作者
6744 發(fā)表于 2018-9-2 12:31
程序沒有問題的話,多半是波特率設(shè)置不對~

波特率沒有問題
回復(fù)

使用道具 舉報

8#
ID:382067 發(fā)表于 2018-9-2 16:17 來自手機(jī) | 只看該作者
392177410 發(fā)表于 2018-9-2 15:40
是給另外一個單片機(jī)發(fā)送嗎,那可能另外一個單片機(jī)的接收寫的有問題,或者看一下你的字符串是怎么判斷結(jié)束的

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

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

9#
ID:392162 發(fā)表于 2018-9-2 17:21 | 只看該作者

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

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

評分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

10#
ID:382067 發(fā)表于 2018-9-2 22:46 來自手機(jī) | 只看該作者
lg2911 發(fā)表于 2018-9-2 17:21
這種能收到字符,但是順序不對的,多半不是波特率問題,波特率錯誤的話,收到的字符是亂的

這種字符正 ...

好的 謝謝
回復(fù)

使用道具 舉報

11#
ID:339903 發(fā)表于 2018-9-3 09:37 來自手機(jī) | 只看該作者
51單片機(jī)的串口,是個全雙工的串口,發(fā)送數(shù)據(jù)的同時,還可以接收數(shù)據(jù)。 當(dāng)串行發(fā)送完畢后,將在標(biāo)志位 TI 置 1,同樣,當(dāng)收到了數(shù)據(jù)后,也會在 RI 置 1。 無論 RI 或 TI 出現(xiàn)了 1,只要串口中斷處于開放狀態(tài),單片機(jī)都會進(jìn)入串口中斷處理程序。 在中斷程序中,要區(qū)分出來究竟是發(fā)送引起的中斷,還是接收引起的中斷,然后分別進(jìn)行處理。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

12#
ID:390775 發(fā)表于 2018-9-3 11:32 | 只看該作者
如果你是  單字符發(fā)送 你可以加下延時
如果是  字符數(shù)組發(fā)送 你可以在發(fā)送之前打印一下   看看自己發(fā)送的是否正確
然后 調(diào)試自己代碼

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

13#
ID:130231 發(fā)表于 2018-9-3 14:28 | 只看該作者
發(fā)送這邊加引導(dǎo)碼與結(jié)束碼就可以了

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

labview的話每次接收完后要記得清空串口緩沖區(qū)

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

15#
ID:382067 發(fā)表于 2018-9-3 15:48 | 只看該作者
392177410 發(fā)表于 2018-9-3 14:43
labview的話每次接收完后要記得清空串口緩沖區(qū)

好的 我試試 謝謝
回復(fù)

使用道具 舉報

16#
ID:276175 發(fā)表于 2018-9-3 16:27 | 只看該作者
加個延時試試
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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