常用的串列埠相關暫存器
void
usart_init()
;//串列埠初始化:波特率,資料字長,奇偶校驗,硬體流控以及收發使能
void
usart_cmd()
;//使能串列埠
void
usart_itconfig()
;//使能相關中斷
void
usart_senddata()
;//傳送資料到串列埠,dr
uint16_t usart_receivedata()
;//接受資料,從dr讀取接受到的資料
flagstatus usart_getflagstatus()
;//獲取狀態標誌位
void
usart_clearflag()
;//清除狀態標誌位
itstatus usart_getitstatus()
;//獲取中斷狀態標誌位,若有資料到來則返回一。
void
usart_clearitpendingbit()
;//清除中斷狀態標誌位
;例如我們要判斷讀暫存器是否非空(rxne),操作庫函式的方法是:
usart_getflagstatus
(usart1, usart_flag_rxne)
;我們要判斷傳送是否完成(tc),操作庫函式的方法是:
;
波特率計算方法:
串列埠配置的一般步驟
rcc_apb2periphclockcmd()
;
usart_deinit()
; 這一步不是必須的
gpio_init()
; tx的模式設定為gpio_mode_af_pp
rx的模式設定為浮空輸入( gpio_mode_in_floating)
或帶上拉輸入(gpio_mode_ipu)
usart_init()
;這個函式的第乙個入口引數是指定初始化的串列埠標號,這裡選擇 usart1。
第二個入口引數是乙個 usart_inittypedef 型別的結構體指標,這個結構體指標的成員變數用
來設定串列埠的一些引數。一般的實現格式為:
usart_initstructure.usart_baudrate = bound;
//波特率設定;
usart_initstructure.usart_wordlength = usart_wordlength_8b;
//字長為 8 位資料格式
usart_initstructure.usart_stopbits = usart_stopbits_1;
//乙個停止位
usart_initstructure.usart_parity = usart_parity_no;
//無奇偶校驗位
usart_initstructure.usart_hardwareflowcontrol
= usart_hardwareflowcontrol_none;
//無硬體資料流控制
usart_initstructure.usart_mode = usart_mode_rx | usart_mode_tx;
//收發模式
usart_init
(usart1,
&usart_initstructure)
;//初始化串列埠
從上面的初始化格式可以看出初始化需要設定的引數為:波特率,字長,停止位,奇偶校驗位,
硬體資料流控制,模式(收,發)。我們可以根據需要設定這些引數。
nvic_init()
;usart_itconfig()
;
usart_cmd()
;
usartx_irqhandler()
;
void
usart_senddata()
;//傳送資料到串列埠,dr
uint16_t usart_receivedata()
;//接受資料,從dr讀取接受到的資料
flagstatus usart_getflagstatus
(usart_typedef* usartx, uint16_t usart_flag)
;void
usart_clearitpendingbit
(usart_typedef* usartx, uint16_t usart_it)
;
usart.h部分**:
#ifndef __uart_h
#define __uart_h
#include
"stm32f10x.h"
void
my_usart_init
(void);
//串列埠、gpio、中斷初始化函式
void
usart1_irqhandler
(void);
//中斷函式
#endif
usart.c部分**:
#include
"usart.h"
void
my_usart_init
(void
)void
usart1_irqhandler
(void
)//中斷函式
}
main.c部分**:
#include
"stm32f10x.h"
#include
"usrt.h"
intmain
(void
)
串列埠暫存器配置
串列埠操作相關庫函式 void usart init 串列埠初始化 波特率,資料字長,奇偶校驗,硬體流控以及收發使能 void usart cmd 使能串列埠 void usart itconfig 使能相關中斷 void usart senddata 傳送資料到串列埠,dr uint16 t us...
串列埠暫存器的相關配置
usart sr狀態暫存器 usart dr資料暫存器 usart brr波特率暫存器 void usart init 串列埠初始化 波特率,資料字長,奇偶校驗,硬體流控以及收發使能 void usart cmd 使能串列埠 void usart itconfig 使能相關中斷 void usart...
STC8 之 串列埠通訊(AUXR暫存器)
這兩天在做stc8板子的串列埠除錯。整理一下前後做的準備和注意事項 要想做通訊,首先要確保pc機的波特率和微控制器的波特率一致。pc端可直接設定。微控制器端就需要採用定時器。這不是乙個簡單的概念。首先微控制器有自己的晶振,可產生振盪週期,即1s內振盪次數。機器週期是12個振盪週期。計時的方法是採用微...