|
软件设计: 以下内容只涉及核心部分代码,变量的设定以及头文件的包含等略。 需要创建bsp_usart.c、bsp_led.c、bsp_systick.c等文件。 5 i$ d8 s* ~6 \ a6 w 编程主要步骤# n& h3 }& H5 `/ ^4 C/ R: Y 一、使能RX和TX引脚GPIO时钟和USART时钟;, Z4 P8 C6 `) |, F 二、初始化GPIO函数; 6 U2 N5 h ?6 O9 j. a7 D 8 b3 _8 b) |2 m. r 注意点: 1、将TX的模式配置为GPIO_Mode_AF_PP(推挽复用,针对串口输出)/ a8 ~5 S8 ^3 C: r 3 Q C9 i- d2 t# ~+ L m# m- D 将RX的模式配置为GPIO_Mode_IN_FLOATING(浮空输入,针对键盘输入) . O5 p X5 r/ k6 ^' Q! i 三、初始化USART函数; 6 D$ o( m0 Z+ z: H: Y E: R' ? 注意点:2 i7 n6 }% S' H, E0 S- H( U 1、配置工作模式,收发一起 2、最后需要调用使能串口函数USART_Cmd();. x( I8 u+ \4 b& B4 S( T : s$ l# d% f4 F$ ]4 v( T 四、初始化控制LED的GPIO口 U" s& e) T; s/ e 五、初始化SYSTICK滴答定时器* I7 L, k4 y4 O m9 t 注意点:要在stm32f10x_it.c里编写SysTick_Handler(void)& N8 Z k9 t7 X 代码分析2 ~) r/ [0 O9 a x' i t 1、GPIO和USART的宏定义9 i. c: a/ X! n8 J. F : x; V* L2 m# [+ K
通过使用宏定义,更方便程序的移植和升级。( L/ f( R' Q" Z% x ! \( c6 |( s, u 2、USART的初始化配置 + N Y9 i b" h1 F
3、重定向printf和scanf函数(在不重定向的情况下无法使用) ! l- b& D! x' U/ |; R+ i$ P8 i
8 ^4 o5 P7 @# {* O; a/ {7 k: V- N! H* t 4、向电脑输出提示信息
1 K" x* `4 `9 {# \1 [5 J SYSTICK程序编写
2 k+ h) m3 M' a) a$ Y& ~5 R* e! s6 M 依次可设定流水灯的延迟闪烁效果 1 p/ [" v, v/ {* Y+ ` 主函数1 z3 J+ H5 w; c! G 4 u( x- C4 c" t( W
# g) g! H' F' L& a" b 不足之处:由于本人C语言基础不足,使用对于流水灯的实现只想到do while语句,故会选择流水灯模式后会陷入死循环,希望以后能对此进行改进。. O! \% c5 h) ~! B, n8 K ————————————————) t4 c/ ^2 ~- H8 |( Z 版权声明:谷爱林 如有侵权请联系删除" T$ n- R9 N- Z& X, F9 K, G |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版