通信
通信的目的:將一個(gè)設(shè)備的數(shù)據(jù)傳送到另一個(gè)設(shè)備,擴(kuò)展硬件系統(tǒng)
通信協(xié)議:制定通信的規(guī)則,通信雙方按照協(xié)議規(guī)則進(jìn)行數(shù)據(jù)收發(fā)
STM32常見(jiàn)的通信協(xié)議?
本文將介紹USART?
概念解釋
- TX、RX分別是Transmit和Receive的縮寫(xiě),代表發(fā)送、接受數(shù)據(jù)
- 全雙工的含義是發(fā)送線路和接受線路互不影響,可以同時(shí)進(jìn)行
- 異步指的是沒(méi)有時(shí)鐘線的通信,需要通信雙方制定幀頭幀尾,通信頻率等參數(shù)
- 單端電平指的是通信雙方的電壓都是以GND為參考電壓的,因此這兩個(gè)設(shè)備需要共地
- 點(diǎn)對(duì)點(diǎn)指的是這個(gè)通信只支持兩個(gè)設(shè)備間進(jìn)行通信
硬件電路連接抽象圖?
?
串口參數(shù)及時(shí)序?
????幾個(gè)需要注意的點(diǎn)
- 第二張圖D7的后一位是奇偶校驗(yàn)位
- 波特率決定了串口通信的速度,舉個(gè)例子,如果波特率為1000bps,那么一秒就會(huì)傳輸1000個(gè)數(shù)據(jù),每傳輸一個(gè)數(shù)據(jù)耗時(shí)1毫秒。
- 高電平作為空閑位,因此每當(dāng)傳輸開(kāi)始,發(fā)送方要先傳送一個(gè)起始位,也就是低電平,告訴接受方我即將要傳輸數(shù)據(jù)了。傳輸結(jié)束后,要傳輸一個(gè)停止位恢復(fù)高電平??偨Y(jié)來(lái)說(shuō),就是TX引腳定時(shí)翻轉(zhuǎn)電平,RX引腳定時(shí)讀取電平,即可完成數(shù)據(jù)的傳輸。
- 數(shù)據(jù)位是低位先行,舉個(gè)例子,比方說(shuō)要傳輸一個(gè)0x0F的數(shù)據(jù),將它轉(zhuǎn)化為二進(jìn)制就是00001111,那么傳輸?shù)捻樞驊?yīng)該是 1 1 1 1 0 0 0 0。
?USART外設(shè)簡(jiǎn)介
?USART基本結(jié)構(gòu)圖
當(dāng)數(shù)據(jù)由數(shù)據(jù)寄存器TDR轉(zhuǎn)到移位寄存器時(shí),會(huì)置一個(gè)標(biāo)志位TXE,我們判斷這個(gè)標(biāo)志位,就可以知道是不是可以開(kāi)始寫(xiě)入下一個(gè)數(shù)據(jù)了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-742535.html
接收部分也是類似的,在接受控制器的控制下,一位一位地移入接收移位寄存器,移完一幀數(shù)據(jù)后,數(shù)據(jù)就會(huì)統(tǒng)一轉(zhuǎn)運(yùn)到接收數(shù)據(jù)寄存器,并置一個(gè)RXNE的標(biāo)志位,我們檢查這個(gè)標(biāo)志位,就可以知道是不是接收到數(shù)據(jù)了。同時(shí)這個(gè)標(biāo)志位也可以申請(qǐng)中斷,這樣就可以在接收到數(shù)據(jù)時(shí),直接進(jìn)入中斷函數(shù),然后快速地讀取和保存數(shù)據(jù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-742535.html
到了這里,關(guān)于「STM32入門(mén)」USART串口通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!