STM32學習筆記 5個串列埠的使用方法

2021-09-10 02:11:17 字數 2096 閱讀 7393

串列埠是我們常用的乙個資料傳輸介面,stm32f103系列微控制器共有5個串列埠,其中1-3是

通用同步/非同步序列介面

usart(universal synchronous/asynchronous receiver/transmitter),4,、5是

通用非同步

序列介面

配置串列埠包括三部分內容

1.  i/o口配置:txd配置為復用推挽輸出(

gpio_mode_af_pp

),rxd配置為浮空輸入(

gpio_mode_in_floating

);2.  串列埠配置:波特率等;

3.  中斷向量配置:一般用中斷方式接收資料。

注意事項

1.  

usart1是掛在apb2,使能時鐘命令為:

rcc_apb2periphclockcmd(rcc_apb2periph_usart1, enable );

其他幾個則掛在apb1上,如2口:

rcc_apb1periphclockcmd(rcc_apb1periph_usart2, enable );

2.  配置4口和5口的時候,中斷名為uart4、uart5,中斷入口分別為

uart4_irqn、uart5_irqn

對應的中斷服務函式為

void uart4_irqhandler(void)

和void uart5_irqhandler(void)。

下面是5個串列埠的配置函式收發資料函式**

:#include "stm32f10x.h"

#include "misc.h"

#include "stm32f10x_gpio.h"

#include "stm32f10x_usart.h" 

void usart1_configuration(void)

void usart1_send_byte(u8 data) //傳送乙個位元組;

void usart1_send_string(u8 *data) //傳送字串;

void usart1_irqhandler(void) //中斷處理函式;  

void usart2_configuration(void)

void usart2_send_byte(u8 data) //傳送乙個位元組;

void usart2_send_string(u8 *data) //傳送字串;

void usart2_irqhandler(void) //中斷處理函式;  

void usart3_configuration(void)

void usart3_send_byte(u8 data) //傳送乙個位元組;

void usart3_send_string(u8 *data) //傳送字串;

void usart3_irqhandler(void) //中斷處理函式;  

void uart4_configuration(void)

void uart4_send_byte(u8 data) //傳送乙個位元組;

void uart4_send_string(u8 *data) //傳送字串;

void uart4_irqhandler(void) //中斷處理函式;  

void uart5_configuration(void)

void uart5_send_byte(u8 data) //傳送乙個位元組;

void uart5_send_string(u8 *data) //傳送字串;

void uart5_irqhandler(void) //中斷處理函式;  

STM32學習筆記 5

不可以用extern的外部呼叫,而且u8 u16等巨集定義也不可以隨便用,會造成其他檔案中此類巨集定義的出現錯誤。所以寫三個.h檔案就可以解決的這個問題 要在main.c中新增這個檔案 define eu32 u32 define eu16 u16 define eu8 u8 define euc3...

STM32之串列埠通訊 學習筆記

並行通訊 按位傳輸 序列通訊 按乙個位元來傳輸 單工 單向傳輸,一根訊號線 半雙工 雙向傳輸,某一時刻只能往乙個方向傳輸,一根訊號線就可以了 全雙工 雙向傳輸,同時往兩個方向傳輸,一般需要有兩根訊號線 同步通訊 必須有同步時鐘訊號線 非同步通訊 設定相同的波特率不需要時鐘訊號線 常見的串列埠通訊介面...

STM32 的串列埠

一 串列埠使用 原則 盡量中斷中不要有延時 比如自定義delay 和自定義printf串列埠列印,明顯找事啊這麼慢能不發生溢位error嘛 接收和傳送盡量分開處理 1.串列埠傳送資料丟失 1 通常是因為傳送之前未檢測tc狀態位之前是否處於傳送完成標誌導致,關於stm32之 的測試程式來講會導致第乙個...