
前言# \& G) m4 s* Q! K) p 串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。3 \" m8 v0 C( G6 w8 N( r- N 今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。: E% D' X8 n. h/ l 下载 ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。/ i% B5 f' @& L3 {# d, n( t& g: E 今天的软件工程下载地址(360云盘): https://yunpan.cn/cS5TeTVUWdc7V 访问密码 9b8c9 p, C# J8 J0 n; ^5 m 9 A7 a$ E7 g3 P STM32F0xx的资料可以在我360云盘下载:8 H8 G' N9 m' ^( h5 r( Z& ? https://yunpan.cn/cS2PVuHn6X2Bj 访问密码 8c37 6 A8 _ m3 |; y t 准备工作 / b9 l5 { ]. X) c1 u9 O6 c ①新建源程序文件4 d6 g. W6 ^2 j* T" } 一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。- }+ x% u/ \- u9 ` ' I: E, `* m$ I5 i 新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图: ![]() / M& x, j( Q9 O! e7 j( g$ q. ~ 注意: ' a0 I# j0 q8 C: m1 Q; L 文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。 * n. B2 g4 ?' A2 p 源代码详情 X5 y9 V6 t" y% X# n$ e ①RCC时钟4 v5 W/ C7 C) T3 d ![]() 该函数位于bsp.c文件下面; 1 k( X0 f4 l8 e, ~* c) J 我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。* r- c ?- O3 f8 u! X7 R5 e) X 6 C o# t6 v) U- k% F# r ②USART引脚配置 . a: G* ?( h- r; J ![]() ) P# R: f) s4 h2 w" c 该函数位于usart.c文件下面;$ l( G! p8 ^6 X# W& i8 @6 _+ y 这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。7 }3 U ]+ Z: A ; i1 _6 E1 h# n1 z1 |3 O 注意:" _, F6 S5 J v) m4 N- C 上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。* v3 x6 N& g( b- g* R1 i ③USART配置3 a; q6 T3 M& ?3 [0 k+ [ ![]() 该函数位于usart.c文件下面; & j% j5 I7 K* D2 V, W7 R* {% l 这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...* k5 s. t$ \3 {+ `; ~; e$ Q! B 注意: / f- o$ A. M8 n7 o1 \+ A6 k$ e& ? 上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。" X; Q$ D+ ~/ b/ s & g: Z: I3 P; J" h0 i3 w. Y! S ④NVIC配置 3 o1 M" z; G. O ![]() 该函数位于bsp.c文件下面; y+ Y' G) D. ^/ ?* ~ ! ^2 f$ V. }+ d6 U. C1 |7 S 要使用中断,必须配置NVIC,这点也不能忘记。 ⑤串口中断接收函数 ![]() - d% Y T, b' B 该函数位于stm32f0xx_it.c文件下面; 中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。 $ U+ f* @4 }5 x8 [1 K8 h 说明 # s' [0 U9 Z x. i1 b! K& ^* N* C) h STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。 4 U, d" q8 t" S2 M. H 以上实例总结仅供参考,若有不对之处,敬请谅解。* \. o2 b5 z' ]' G 2 y6 _2 z6 f+ U5 t% Y9 c |
【经验分享】STM32F1 GPIO工作原理
【经验分享】STM32F0xx_DMA收发USART数据配置详细过程
【经验分享】STM32F1和STM32F4 区别
【经验分享】STM32F1系列之常用外设说明
【经验分享】STM32介绍
【经验分享】STM32F1x系列——Flash 模拟 EEPROM
【经验分享】STM32F1在MDK下新建标准库函数工程
【经验分享】stm32f1的存储器与复位
【经验分享】STM32F10X-架构
【经验分享】stm32F1 us延时函数