欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 發(fā)現(xiàn)一個單片機(jī)串口的奇怪問題,求分析 [打印本頁]

作者: guysxpf    時間: 2021-1-6 09:38
標(biāo)題: 發(fā)現(xiàn)一個單片機(jī)串口的奇怪問題,求分析
最近發(fā)現(xiàn)一個串口的迷惑行為。
單片機(jī)型號:STC8
頻率:24MHz


今天準(zhǔn)備使用串口對程序進(jìn)行調(diào)試,結(jié)果發(fā)過來的內(nèi)容總是出現(xiàn)各種錯誤。于是我用示波器看了一下波形。不看不知道,一看下巴都要驚掉了!!


學(xué)過串口通信原理的師兄都知道,串口起始位是低電平0,停止位是高電平1。但STC8的硬件串口外設(shè)居然會反著來。看圖:



圖1發(fā)送的是字符“A”,圖2發(fā)送的是數(shù)字0x55
但吊詭的事情就來了,圖中的“正確波形”指的是理論上應(yīng)該有的波形,而示波器實(shí)際測出來的波形卻與其有不少出入。后來我發(fā)現(xiàn),STC8單片機(jī)居然把起始位和停止位對調(diào)了。


我同時也用光標(biāo)測量了最小脈沖寬度,大約0.83ms ≈ 833μs,說明波特率和時鐘都是正確的。


求大神解答一下為什么會出現(xiàn)如此奇怪的情形



作者: cocolala    時間: 2021-1-6 10:38
    1、樓主可以把STC8的單片機(jī)型號全稱注明下嗎?因?yàn)镾TC8下系列種類較多,不同型號可能會有所不同。
    2、本人有使用STC8A8K64S4A12單片機(jī),該型號單片機(jī)官方手冊給出了發(fā)送過程說明及示意圖,明確了起始位是低電平,停止位是高電平。


  發(fā)送過程:串行通信模式發(fā)送時,數(shù)據(jù)由串行發(fā)送端TXD輸出。當(dāng)主機(jī)執(zhí)行一條寫SBUF的指令就啟動串行通信的發(fā)送,寫“SBUF”信號還把“1”裝入發(fā)送移位寄存器的第9位,并通知TX控制單元開始發(fā)送。移位寄存器將數(shù)據(jù)不斷右移送TXD端口發(fā)送,在數(shù)據(jù)的左邊不斷移入“0”作補(bǔ)充。當(dāng)數(shù)據(jù)的最高位移到移位寄存器的輸出位置,緊跟其后的是第9位“1”,在其左邊各位全為“0”,這個狀態(tài)條件,使TX控制單元作最后一次移位輸出,然后使允許發(fā)送信號“SEND”失效,完成一幀信息的發(fā)送,并置位中斷請求位TI,即TI=1,向主機(jī)請求中斷處理。
    3、樓主亦可把程序關(guān)于串口配置及發(fā)送的源碼貼出。




作者: 人人學(xué)會單片機(jī)    時間: 2021-1-6 11:42
TXD 口需要推挽
作者: jjjjjjir    時間: 2021-1-6 11:46
是不是將串口設(shè)置成9位的工作模式了?檢查一下串口的寄存器設(shè)置是否有誤
作者: guysxpf    時間: 2021-1-6 12:02
cocolala 發(fā)表于 2021-1-6 10:38
1、樓主可以把STC8的單片機(jī)型號全稱注明下嗎?因?yàn)镾TC8下系列種類較多,不同型號可能會有所不同。
    ...

問題已經(jīng)解決了,不過還是謝謝您
作者: guysxpf    時間: 2021-1-6 12:03
jjjjjjir 發(fā)表于 2021-1-6 11:46
是不是將串口設(shè)置成9位的工作模式了?檢查一下串口的寄存器設(shè)置是否有誤

已經(jīng)找到問題的關(guān)鍵了,謝謝
作者: guysxpf    時間: 2021-1-6 12:03
人人學(xué)會單片機(jī) 發(fā)表于 2021-1-6 11:42
TXD 口需要推挽

好的,多謝提醒
作者: guysxpf    時間: 2021-1-6 12:06
發(fā)現(xiàn)了兩個問題,已經(jīng)解決了:1、波形是正確的,沒有問題,應(yīng)該是先發(fā)低位,再發(fā)高位。我給搞反了,但這并不是問題的關(guān)鍵
2、核心原因在這里:http://m.raoushi.com/bbs/dpj-201131-1.html
     帖子正在審核,稍微等等就能看到了

作者: 兩儀式    時間: 2021-1-6 12:16
guysxpf 發(fā)表于 2021-1-6 12:02
問題已經(jīng)解決了,不過還是謝謝您

什么問題說清楚啊

作者: szb314    時間: 2021-1-6 13:09
兩儀式 發(fā)表于 2021-1-6 12:16
什么問題說清楚啊

就是不說
作者: guysxpf    時間: 2021-1-6 14:56
兩儀式 發(fā)表于 2021-1-6 12:16
什么問題說清楚啊

就是單片機(jī)已經(jīng)開始發(fā)送字符了,但電腦那邊還沒準(zhǔn)備好接收。
導(dǎo)致電腦誤把低電平數(shù)據(jù)位當(dāng)成了起始位,導(dǎo)致數(shù)據(jù)錯位,最終出現(xiàn)傳輸錯誤
具體的在這里
http://m.raoushi.com/bbs/dpj-201131-1.html




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