stm32串列埠通訊(usart1)

2021-09-27 06:16:30 字數 2172 閱讀 1921

參考:

gpio_inittypedef gpio_initstructure;

24 usart_inittypedef usart_initstructure;

25 nvic_inittypedef nvic_initstructure;

初始化gpio

30 gpio_initstructure.gpio_pin = gpio_pin_9;

31 gpio_initstructure.gpio_speed = gpio_speed_50mhz;

32 gpio_initstructure.gpio_mode = gpio_mode_af_pp; //復用推挽輸出

33 gpio_init(gpioa, &gpio_initstructure);//初始化gpioa.9

3435 //usart1_rx gpioa.10初始化

36 gpio_initstructure.gpio_pin = gpio_pin_10;//pa10

37 gpio_initstructure.gpio_mode = gpio_mode_in_floating;//浮空輸入

38 gpio_init(gpioa, &gpio_initstructure);//初始化gpioa.10

usart1 nvic 配置

41 nvic_prioritygroupconfig(nvic_prioritygroup_2); //設定nvic中斷分組2:2位搶占優先順序,2位響應優先順序 0-3;

4243 nvic_initstructure.nvic_irqchannel = usart1_irqn;

44 nvic_initstructure.nvic_irqchannelpreemptionpriority=3 ;//搶占優先順序3

45 nvic_initstructure.nvic_irqchannelsubpriority = 3; //子優先順序3

46 nvic_initstructure.nvic_irqchannelcmd = enable; //irq通道使能

47 nvic_init(&nvic_initstructure); //根據指定的引數初始化vic暫存器

48usart 初始化設定

5051 usart_initstructure.usart_baudrate = 115200;//串列埠波特率

52 usart_initstructure.usart_wordlength = usart_wordlength_8b;//字長為8位資料格式

53 usart_initstructure.usart_stopbits = usart_stopbits_1;//乙個停止位

54 usart_initstructure.usart_parity = usart_parity_no;//無奇偶校驗位

55 usart_initstructure.usart_hardwareflowcontrol = usart_hardwareflowcontrol_none;//無硬體資料流控制

56 usart_initstructure.usart_mode = usart_mode_rx | usart_mode_tx; //收發模式

5758 usart_init(usart1, &usart_initstructure); //初始化串列埠1

59 usart_itconfig(usart1, usart_it_rxne, enable);//開啟串列埠接受中斷

60 usart_cmd(usart1, enable); //使能串列埠1

// 傳送乙個位元組

void usart_sendbyte(usart_typedef * pusartx, uint8_t ch)

}void usart_sendstring(usart_typedef * pusartx, char *data)

}// 實現fputc

int fputc(int ch, file *f)

// 禁止半主機模式,沒有勾選microlib

#pragma import(__use_no_semihosting)

struct __file

;file __stdout;

void _sys_exit(int x)

{

STM32 串列埠USART1 的使用

編寫程式的步驟 1.初始化串列埠要用的gpio 2.初始化結構體usart inittypedef 3.中斷配置 nvic inittypedef 4.使能串列埠中斷 5.編寫發生和接收函式 6.中斷函式 void usart senddata usart typedef usartx,uint16...

STM32 串列埠USART 通訊

通過stm32向串列埠傳送資料顯示在串列埠終端上 我用的是串列埠除錯工具 並且在除錯工具上傳送認識字元,然後在終端上顯示出來,就是這樣了,分別驗證了usart1和usart2,雖說只是乙個1和2,但是初始化時鐘的時候,並不一樣的,我們先來看卡下圖中 各個模組,io口時鐘分布 在系統初始化各個模組前,...

STM32 串列埠通訊USART(學習筆記)

tx rx f pclk x 16 usa rtdi v tx rx fpclkx 16 usartdiv tx rx fpcl kx 16 u sart div f pc lkxfpclkx fpclkx 是給串列埠的時鐘 其中usart2,3,4,5 用pclk1,usart1 用pclk2 通...