|
软件设计: 以下内容只涉及核心部分代码,变量的设定以及头文件的包含等略。9 j+ V" j0 H6 G) k' L& U: O2 c4 Y 需要创建bsp_usart.c、bsp_led.c、bsp_systick.c等文件。- v2 S. [/ z- |6 _6 C 编程主要步骤 一、使能RX和TX引脚GPIO时钟和USART时钟;: c' s3 h! Y$ \: F 二、初始化GPIO函数; $ Z8 { H* R4 t* {, Z. w" x5 Q" R # F0 I) h h0 B$ V& j4 ] 注意点:; I" z3 z( k2 Z8 v, e% ~ 1、将TX的模式配置为GPIO_Mode_AF_PP(推挽复用,针对串口输出)) d( n; r2 l& w; t; T 将RX的模式配置为GPIO_Mode_IN_FLOATING(浮空输入,针对键盘输入) 6 K7 X" k1 K7 t0 Y, t 三、初始化USART函数; + N4 s/ O2 }. t; b/ u+ { 注意点: 1、配置工作模式,收发一起4 w" [, T( I6 n& a 2、最后需要调用使能串口函数USART_Cmd(); * }" v/ Z k/ _ k( Z! R 四、初始化控制LED的GPIO口 4 F$ Y% y& I' x! f( M 五、初始化SYSTICK滴答定时器 注意点:要在stm32f10x_it.c里编写SysTick_Handler(void) * y- q& K& x, U! {5 \ 代码分析1 s* ~+ N" Z9 O* [ 1、GPIO和USART的宏定义 ' C' ]0 E, h8 S1 W7 _3 O
通过使用宏定义,更方便程序的移植和升级。 j: ]+ P* i, j & j7 p2 a, l) x8 q) R : J, u2 j6 b* Y" \/ }8 _4 I( J 2、USART的初始化配置
6 N5 s% B/ b6 f8 `( F
3、重定向printf和scanf函数(在不重定向的情况下无法使用)" l# Z! p! z5 o
, Z% \$ a/ G3 k5 D& M 4、向电脑输出提示信息 : M- s5 V: F2 c( ^6 _
: V1 X; {2 n' W( j5 i# V* J5 A SYSTICK程序编写% e" N; t, F8 M& O& W0 O * K. C0 S$ T9 k3 U1 M
7 D# {+ X5 ^( I# F0 w 依次可设定流水灯的延迟闪烁效果1 V# {2 ~3 ?* m+ A6 C ! m% ~- _2 i* ^8 ?' O 主函数, m1 D7 w3 s8 i/ Q) y
& l; {: C) F/ i 不足之处:由于本人C语言基础不足,使用对于流水灯的实现只想到do while语句,故会选择流水灯模式后会陷入死循环,希望以后能对此进行改进。 ———————————————— 版权声明:谷爱林 如有侵权请联系删除" g# C* K9 M0 D% I# |" L6 D! { ' X7 j+ p7 p" y1 T |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版