STM32串列埠除錯

2021-08-31 21:16:37 字數 991 閱讀 3202

改為串列埠中斷接收方式,發現也只能進入一次接收中斷函式,把開啟中斷函式放入接收中斷函式內,可以連續進入接收中斷函式了,但是資料丟失的問題仍然存在,又經過一番除錯發現將處理資料函式從接收中斷函式中取出,問題就解決了。

然而採用串列埠dma方式時,將處理函式從中斷函式中取出,讀取的資料還是錯誤的。

唉,現在可以收到正確的資料了,不打算進一步找錯誤了,感覺hal庫的小問題有點多。

為了嚴謹,判斷是接到資料之後進入中斷後,再從緩衝區將資料讀出,在中斷處理函式中加入flag_rx

void usart1_irqhandler(void)

在while (1)裡當flag_rx==1時,對資料進行處理。

while (1)

printf("press\r\n");

printf("%d\r\n",press_data[0].back);

printf("%d\r\n",position_data[0].back);

delay();

}在處理函式內一定要將緩衝區的資料完全讀出來,串列埠的資料暫存器才會更新。

stm32串列埠通訊

通訊方式 1 同步通訊 帶時鐘同步訊號傳輸 spi,iic等 2 非同步通訊 不帶時鐘用途訊號 usrt,單匯流排 stm32串列埠引腳表 串口號 rxd txd 1 pa10 pa9 2 pa3pa2 3 pb11 pb10 4 pc11 pc10 5 pd2pc12 通訊過程 接收過程 由rx入...

STM32串列埠通訊

1.常用的串列埠相關暫存器 1 usart sr狀態暫存器,對應的庫函式 flagstatus usart getflagstatus usart typedef usartx,uint16 t usart flag 2 usart dr資料暫存器,對應的庫函式 void usart senddat...

STM32串列埠通訊

串列埠作為mcu最重要的外部介面,同時也是軟體開發重要的除錯手段,其重要性不言而喻。在這裡我們主要從庫函式的角度來講述如何設定串列埠,來達到最基本的通訊功能。串列埠的設定一般可以歸結為以下幾個步驟 1 串列埠時鐘使能,gpio時鐘使能。2 設定引腳復用器對映,呼叫gpio pinafconfig函式...