STM32 UART(接收 ,傳送資料)

2021-07-09 19:26:55 字數 928 閱讀 2114

uart接收傳送資料:

平台:stm32f401 discovery版

此**用的uart6,tx,rx對應的pin腳是pc6,pc7

如圖:

步驟一:初始化串列埠的gpio,usart,並且配置上uart的rx中斷

void usart6_config(void)

步驟二:測試一下tx,即用printf,但是printf內部是呼叫fputs,所以需要重定向一下

int fputc(int ch, file *f)

int fgetc(file *f)

步驟三:編寫rx中斷函式

void usart6_irqhandler(void)

}

注意地方:使用的iar,衝定向的時候出現file型別找不到,可是在c原因中#include ,但是為什麼還是報錯呢?

追**發現:

#if _dlib_file_descriptor

typedef _filet file;

#endif /* _dlib_file_descriptor */

_dlib_file_descriptor巨集是0,但是iar又不讓修改,所以肯定是**的lib沒有配置,於是找到如圖就搞定了

附一張板子圖:

用標準的杜邦線連線

整個工程如連線:

STM32 UART串列埠驅動程式

示例1.通過uart1進行資料傳送 uart 1 的初始化 brief uart1 initialise.param none.retval none.void uart1 init void 將資料0xba通過uart1傳送出 usart senddata usart1,0xba send dat...

GD32 DMA串列埠接收傳送

簡介 gd32其實跟stm32差不多,有些程式簡直可以在兩個微控制器上直接執行,但用gd32的庫函式貌似比stm32的庫函式比較複雜 可能是因為剛接觸所以很多都沒了解到,不熟悉 最近用到了串列埠dma傳送,但看官方的demo又沒寫得很仔細,就上網搜尋了一下並記錄下來。由於只用到的串列埠的dma傳送,...

STM32 硬體UART接收超時檢測設定

本文作者 智御電子 期待與電子愛好者交流學習。在uart應用中有時候需要進行雙工通訊,主機需要對從機的資料進行接收超時檢測,例如modbus協議,主機在接收從機資料在3.5個位元組時間後認為資料報接收完畢。那在這種情況下,一般的做法是設定乙個定時器,在每接收到乙個位元組時清零定時器重新計數,直到定時...