
软件设计: 以下内容只涉及核心部分代码,变量的设定以及头文件的包含等略。 需要创建bsp_usart.c、bsp_led.c、bsp_systick.c等文件。 编程主要步骤; l* k1 [" ?/ J4 Q5 D 一、使能RX和TX引脚GPIO时钟和USART时钟;: p' R! w& c. G, e$ v) z: E + @* v) o4 t8 B3 i8 b3 X3 u 二、初始化GPIO函数;; }5 h B7 K+ I+ K t6 o/ n | 0 y- I8 R, H+ Z1 U9 t1 L) I* T ) d; }* {0 K5 C+ G 注意点: 1、将TX的模式配置为GPIO_Mode_AF_PP(推挽复用,针对串口输出) 将RX的模式配置为GPIO_Mode_IN_FLOATING(浮空输入,针对键盘输入) z" Q; t7 T3 v( Q6 F ( H1 C$ ~! l4 H 三、初始化USART函数; 注意点:' ~' o- ~, m6 t# H2 G" a 1、配置工作模式,收发一起 2、最后需要调用使能串口函数USART_Cmd();; n9 i0 \* u" l0 W' X2 g / ` Z5 E7 c, z: Y) N: C 四、初始化控制LED的GPIO口0 N( }, F: L; E0 E; k 五、初始化SYSTICK滴答定时器 9 r. j8 R7 T" t. _; v7 @8 b 注意点:要在stm32f10x_it.c里编写SysTick_Handler(void)' w# B2 ]# d% R( E. A# B 代码分析. d' ?3 Z3 n# u1 K3 U% y# Y6 z% Q 1、GPIO和USART的宏定义 ![]() 通过使用宏定义,更方便程序的移植和升级。 $ s3 |, E" G2 H/ p1 { q9 a9 Y0 f c5 U 2、USART的初始化配置 ![]() ( S l& C9 V' w, t- a( U1 k% J ![]() 3、重定向printf和scanf函数(在不重定向的情况下无法使用): a) l. ]* A' b& o" n1 [# A( Z8 [ 9 \! R3 ^9 H8 V; p: c3 E ![]() 4、向电脑输出提示信息8 U& a9 }. M4 j. V* q; M * p! Z" D; M: U! u' k" j" G! {1 z# Y ![]() SYSTICK程序编写0 W7 j8 q. l( C4 s. E6 F: h ' B: A+ f( e# Q) R9 U" G ![]() 依次可设定流水灯的延迟闪烁效果& H: ^" f, m2 V) i b% _" ]) ]# [) r . `# T. b! u* V. i 主函数 # i" v1 S. h* {/ c6 k# B ![]() 不足之处:由于本人C语言基础不足,使用对于流水灯的实现只想到do while语句,故会选择流水灯模式后会陷入死循环,希望以后能对此进行改进。4 w3 p4 F C- P& G4 d' K) a3 \ ———————————————— 版权声明:谷爱林2 Q) x9 y) M K; X4 {$ q 如有侵权请联系删除 3 Z5 v' |( k0 @' b 0 F' `9 C/ i# ~" { |
【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. 串口实用收发测试