
软件设计:; x" \" }" }7 ^" R% C 以下内容只涉及核心部分代码,变量的设定以及头文件的包含等略。8 N. G/ B, f; z 需要创建bsp_usart.c、bsp_led.c、bsp_systick.c等文件。. y; Z" `5 w, l7 N! ^2 I ; s; J. g" u+ a( G# p/ K 编程主要步骤 一、使能RX和TX引脚GPIO时钟和USART时钟;" t# Z6 a% g$ I5 ? 二、初始化GPIO函数; 注意点: 1、将TX的模式配置为GPIO_Mode_AF_PP(推挽复用,针对串口输出)0 M, F- F2 c0 o1 t5 J" e 将RX的模式配置为GPIO_Mode_IN_FLOATING(浮空输入,针对键盘输入): j1 q' X* P% \9 u" T& ~( R- \* ^ % p( W, V; Q, P0 Z" w8 x 三、初始化USART函数; 注意点: 1、配置工作模式,收发一起 2、最后需要调用使能串口函数USART_Cmd(); t+ \/ |# \) H/ ^ 5 ?) O% ]' ?6 Y9 P$ R( ~ 四、初始化控制LED的GPIO口 五、初始化SYSTICK滴答定时器0 [9 f4 J# d2 U5 z5 S3 { ' `+ F5 Y& ]3 P: \& }8 _# T 注意点:要在stm32f10x_it.c里编写SysTick_Handler(void)9 V5 E- Z" w9 y# z- `0 q , e& @+ s9 i$ _ 代码分析 1、GPIO和USART的宏定义: z/ X4 C, }2 L1 { ![]() 通过使用宏定义,更方便程序的移植和升级。 - p1 C5 I- U0 U( T+ X: M. }/ F 2、USART的初始化配置/ v8 o) e# b5 s) _# s 5 _+ S) y# U8 U% d# ^9 f ![]() 9 ` K% j1 u& O4 x ![]() 3、重定向printf和scanf函数(在不重定向的情况下无法使用)2 E) h/ m% n2 S# E5 \ 3 ^, K9 ~- w! z# b& S% k ![]() 4、向电脑输出提示信息4 V: ~* K! ?7 v& D) E7 P3 L+ D + D+ O& j0 y2 I Y" A( m& V" ` ![]() SYSTICK程序编写 0 v; u6 D* B: o& d d: C ![]() 依次可设定流水灯的延迟闪烁效果 V" c9 i/ U0 H , ~0 T2 ~9 z( g# l P3 Q. X 主函数9 j; e6 g' l" y0 q. c2 `+ ?. z - ]& F1 ~* I' N ![]() 不足之处:由于本人C语言基础不足,使用对于流水灯的实现只想到do while语句,故会选择流水灯模式后会陷入死循环,希望以后能对此进行改进。 ————————————————# r# a+ ?' g$ }* V( K 版权声明:谷爱林7 T) |; Y/ ~9 ?1 P( d) i+ S& r 如有侵权请联系删除( W- L/ O$ ]( S# ]4 [1 |3 B5 T7 z 2 p D) A) u2 b( s |
【STM32U3评测】实现双通道串口通信系统
OpenBLT移植到STM32F405开发板
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
【NUCLEO-WB09KE评测】STM32WB09KE的内部BootLoader使用
11111111111111111111111111111111111
STM32芯片ISP串口程序一键下载—FlyMcu
如何使用CubeMX实现STM32的串口通信以及对printf等函数的重定向
基于STM32串口中断之缓存区溢出卡死经验分享
基于STM32 Azure USBx 开发的经验分享
NUCLEO-U545RE-Q评测】4. 串口实用收发测试