GPIO模擬串列埠

2021-08-17 15:08:39 字數 577 閱讀 4042

模擬串列埠

串列埠預設的1byte資料格式為(暫不考慮校驗位):1bit起始位+8bit資料位+1bit停止位,起始位(s)為低電平,停止位(t)為高電平。具體格式如下圖所示

若波特率為9600,每s傳輸9600bd。二進位制下波特率等於位元率。則可看成每s傳輸9600bit。

1/9600 = 104 us 每104us傳送1bit

定時器配置為104us觸發一次,進入定時器中斷。

下面以傳送1bit start + 1byte data + 1bit stop資料為例

若為傳送資料,每104us傳送乙個bit(即進入tim中斷傳送)  則:

先傳送start位,為低電平

再傳送8bit的資料

最後傳送stop位,為高電平

若為接收資料,則:

在tim中斷函式中判斷rx引腳的電平

平時rx為高電平,若檢測到rx為低電平,則表示串列埠收到資料,開始接收模式。

將start位後的8bit資料接收放入buff中。

C51 GPIO口模擬串列埠方法

隨著微控制器的使用日益頻繁,用其作前置機進行採集和通訊也常見於各種應用,一般是利用前置機採集各種終端資料後進行處理 儲存,再主動或被動上報給管理站。這種情況下下,採集會需要乙個串列埠,上報又需要另乙個串列埠,這就要求微控制器具有雙串列埠的功能,但我們知道一般的51系列只提供乙個串列埠,那麼另乙個串列...

gpio模擬串列埠uart接收資料(HAL庫)

gpio模擬uart的原理就是根據所需要的uart的波特率,計算出每個bit所用的時間,在此時間段內去讀取gpio的輸入,然後將讀取的8bit拼接起來即可,當然這期間要檢測起始位和結束位。uart的起始位是下降沿,結束位是上公升沿。為了檢測準確,我們讀取每個bit的中位位置,所以定時時間是每個bit...

模擬串列埠輸出

最近在除錯hardfault handler輸出日誌資訊時候獲得了vincent幫助,感謝 1 void delay uart5 uint16 t cnt 2 1 void hardfault handler void uart5 384002 60 gpioc bsrr 0x0001 12 61 ...