rcc_apb2periphclockcmd
(rcc_apb2periph_gpioa, enable)
;//使能gpio時鐘
rcc_apb2periphclockcmd
(rcc_apb2periph_afio, enable)
;//使能afio時鐘
rcc_apb2periphclockcmd
(rcc_apb2periph_usart1, enable)
;//使能串列埠時鐘
gpio_inittypedef gpioinitstructure;
// 配置pa9 tx
gpioinitstructure.gpio_mode = gpio_mode_af_pp;
gpioinitstructure.gpio_pin = gpio_pin_9;
gpioinitstructure.gpio_speed = gpio_speed_50mhz;
gpio_init
( gpioa,
&gpioinitstructure)
;// 配置pa10 rx
gpioinitstructure.gpio_mode = gpio_mode_in_floating;
gpioinitstructure.gpio_pin = gpio_pin_10;
gpio_init
( gpioa,
&gpioinitstructure)
;
usart_inittypedef usartinitsturure;
usartinitsturure.usart_baudrate =
115200
;usartinitsturure.usart_hardwareflowcontrol = usart_hardwareflowcontrol_none;
usartinitsturure.usart_mode = usart_mode_rx |usart_mode_tx;
usartinitsturure.usart_parity =usart_parity_no;
usartinitsturure.usart_stopbits = usart_stopbits_1;
usartinitsturure.usart_wordlength = usart_wordlength_8b;
usart_init
(usart1,
&usartinitsturure)
;usart_itconfig
(usart1, usart_it_rxne,enable)
;//串列埠中斷配置,第二個引數是表示使能串列埠的型別,也就是使能哪種中斷,因為串列埠的中斷型別有很多種。
usart_cmd
(usart1, enable)
;//使能串列埠
nvic_inittypedef nvicinitstructure;
nvic_prioritygroupconfig
(nvic_prioritygroup_2 )
;nvicinitstructure.nvic_irqchannel = usart1_irqn;
nvicinitstructure.nvic_irqchannelpreemptionpriority =1;
nvicinitstructure.nvic_irqchannelsubpriority =1;
nvicinitstructure.nvic_irqchannelcmd = enable;
nvic_init
(&nvicinitstructure)
;
void
usart1_irqhandler
(void)if
(tmp ==
'c')
}}
void
usartsendbyte
(usart_typedef* usartx, uint16_t data)
void
usartsendstr
(usart_typedef* usartx,
char
*str)
while(*
(str +i)
!='\0');
while
(usart_getflagstatus
(usart1, usart_flag_tc)
== reset)
;}
int
fputc
(int ch , file *f)
需要包含標頭檔案stdio.h,並且勾選target中的use microlib
int
fgetc
(file *f)
通過庫函式使用STM32f103串列埠中斷的心得
stm32使用usart中斷主要有一下幾步 1,定義中斷結構體,和串列埠結構體 2,使能時鐘 3,編寫中斷函式 4,使能中斷 關於傳送中斷,筆者當時有個疑惑 上圖是關於狀態暫存器 usart sr 中的兩位。上圖是控制暫存器1 usart cr1 中的兩位。筆者當時的疑惑是,這兩位都可以控制中斷啊,...
stm32f103外部中斷
void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...
STM32F103串列埠通訊
usart 通用同步非同步收發器 是乙個序列通訊裝置,可以靈活地與外部裝置進行全雙工資料交換。有別於 usart 還有乙個uart,它是在 usart 基礎上裁剪掉了同步通訊功能,只有非同步通訊。全雙工的,非同步通訊 分數波特率發生器系統 傳送和接收共用的可程式設計波特率,最高達4.5mbits s...