|
软件设计:. f6 v9 T& @/ c 以下内容只涉及核心部分代码,变量的设定以及头文件的包含等略。: F/ h5 y6 P+ o 需要创建bsp_usart.c、bsp_led.c、bsp_systick.c等文件。 1 i% G. B0 U5 B; I7 U( y 编程主要步骤 一、使能RX和TX引脚GPIO时钟和USART时钟;& m* f& q, M# p# E 5 `: s1 U) Y0 c/ o8 n& l$ m 二、初始化GPIO函数;- j* p9 ~1 t8 J 9 U# Y0 ?0 M/ q 注意点: Q# [. U. t5 B2 j9 U) z 1、将TX的模式配置为GPIO_Mode_AF_PP(推挽复用,针对串口输出)- `6 E+ U9 D4 X( x9 ^! C" h 9 P' q; w5 o. \* s6 h6 n' v 将RX的模式配置为GPIO_Mode_IN_FLOATING(浮空输入,针对键盘输入) : J0 Y8 v6 h" P% S9 h. m 三、初始化USART函数; v# f/ ^- Q) I* g% ^2 n% {. i / ]7 f+ }: A% S/ [ 注意点: 1、配置工作模式,收发一起) ?, g0 p8 s- ?/ F 2、最后需要调用使能串口函数USART_Cmd(); 8 ?( `. r. |- u 四、初始化控制LED的GPIO口3 P7 c. t; e3 P& R" K' f) I 五、初始化SYSTICK滴答定时器 注意点:要在stm32f10x_it.c里编写SysTick_Handler(void) 3 s$ ]9 I9 `* @* V, N2 T 代码分析 1、GPIO和USART的宏定义9 O5 b J$ @6 x2 x) ^# G
通过使用宏定义,更方便程序的移植和升级。 + B0 T" e& y5 J( \3 k% I- g3 s # l$ ?3 ]) u$ \! c! w 2、USART的初始化配置
8 V2 m7 A5 G( X+ m5 a5 d
0 Q8 D# z4 k+ I' J- z/ s, P 3、重定向printf和scanf函数(在不重定向的情况下无法使用)4 j+ T) t, H( a, P2 P ) q0 w( ^! r! s; n( q( [/ [
4、向电脑输出提示信息; q; r, _7 c: ^9 {6 M L 9 f; t& e8 V6 c% s; v& x
SYSTICK程序编写% X( F# z" K2 | J( m I' @ / b& {: g/ V/ D1 `
8 ~7 f: ?' u* x, W- g) X 依次可设定流水灯的延迟闪烁效果 主函数 & o3 m2 {0 ~) K( Z
不足之处:由于本人C语言基础不足,使用对于流水灯的实现只想到do while语句,故会选择流水灯模式后会陷入死循环,希望以后能对此进行改进。: ~0 l9 {) G: l: q ————————————————( {6 c5 ?9 p" ]0 h1 m6 h7 L 版权声明:谷爱林! t! }/ `( S& T. G* r7 b 如有侵权请联系删除% b* M1 k6 Z! j; g/ ^ * \8 [( y& K. Q% x/ ~ |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版