新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32中斷式發(fā)送特點和RS485方向控制

STM32中斷式發(fā)送特點和RS485方向控制

作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
STM32的數(shù)據(jù)發(fā)送有兩個中斷標志,一個是發(fā)送數(shù)據(jù)寄存器空標志,一個是發(fā)送完畢標志。兩個標志都可以引起中斷.


要以中斷的方式發(fā)送一個數(shù)據(jù)包,流程是這樣的:

1.設(shè)置RS485的方向為發(fā)送,使能發(fā)送寄存器空中斷,使能完畢進入串口中斷。

2.串口中斷里讀取串口狀態(tài),并填充一個數(shù)據(jù)到發(fā)送數(shù)據(jù)寄存器,硬件自動清除發(fā)送數(shù)據(jù)寄存器空標志,串口數(shù)據(jù)發(fā)送開始。

3.串口發(fā)送完一個數(shù)據(jù),發(fā)送數(shù)據(jù)寄存器變空,再進入中斷,繼續(xù)填充下一個數(shù)據(jù),直到最后一個數(shù)據(jù)填充完, 使能串口
發(fā)送完畢中斷。

4.最后一個數(shù)據(jù)發(fā)送完畢,再次進入中斷, 清除發(fā)送數(shù)據(jù)寄存器空標志,清除發(fā)送完畢中斷標志,清除這兩個中斷標志
的使能位,設(shè)置RS485的方向為接收.

注: 如果最后一個數(shù)據(jù)放入數(shù)據(jù)發(fā)送寄存器,就立刻設(shè)置RS485的方向為接收,對方將會丟失一個數(shù)據(jù)。發(fā)送完畢中斷和
51單片機的TI標志功能是一樣的。唯有發(fā)送寄存器空標志是51單片機所沒有的,使用這個標志可保證發(fā)送數(shù)據(jù)波形的連續(xù)性,
減少空閑時間。

本文引用地址:http://2s4d.com/article/201612/325034.htm

在連續(xù)的數(shù)據(jù)包發(fā)送時,先開啟寄存器空中斷,進入發(fā)送中斷,在發(fā)送中斷里填充數(shù)據(jù)到發(fā)送寄存器,最后一個數(shù)據(jù)填充完,開啟發(fā)送完畢中斷,最后一個數(shù)據(jù)發(fā)送完畢,再次進入中斷,就可以控制RS485的方向為接收了.



評論


技術(shù)專區(qū)

關(guān)閉