【小知識】使用串口8bit,7bit和6bit數據格式的奇偶校驗問題

這裏以STM32H7爲例進行說明,先看支持的校驗格式:

 

 

主要是三種,6bit數據 + 1bit校驗,7bit數據+1bit校驗,8bit數據+1bit校驗:

 

 

而發送寄存器和接收寄存器都是9bit格式的:

 

 

那麼重點來了,校驗位是串口外設硬件完成的,對應的數值也在發送/接收寄存器上。操作8bit數據+1bit格式的時候感覺不出來,因爲我們一般都是僅讀取寄存器的8bit。

操作6bit數據 + 1bit校驗,7bit數據+1bit校驗就有問題了,會把校驗位數值也讀出來。

簡單的測試
7bit數據+1bit校驗的串口迴環(RX和TX短接)奇校驗效果:

發送hex數值11 ,22, 33, 44後,反饋的數據把校驗位也給讀出來了91, A2,B2,C4,即bit7都是1。

 

 

軟件屏蔽校驗位後,正常效果:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章