STMCU小助手
发布时间:2021-11-23 20:54
|
前言 串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。2 D+ X- `) A: z1 ^ 今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。 下载 ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。 今天的软件工程下载地址(360云盘): https://yunpan.cn/cS5TeTVUWdc7V 访问密码 9b8c3 N0 X7 F* R, j STM32F0xx的资料可以在我360云盘下载: https://yunpan.cn/cS2PVuHn6X2Bj 访问密码 8c377 }. j2 P( N9 r( }( P- P * V. G+ p/ y/ b) p1 x) @8 J$ E# i4 x' c 准备工作 ①新建源程序文件 3 h) T4 V9 s+ p* Y6 y 一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。9 O$ A' y M& ~3 d. | $ Y6 v! H% }) C7 b' s- f* f# C 新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:! O$ P+ v5 V C: U( x5 J! T: a 3 M1 j! ^- \# U) E; A( Y
注意: 7 U! Z7 t7 @: Y* z. f 文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。 o0 V( L; \! K1 ? 1 e% [ r& }4 t$ }5 b9 G6 p" y 源代码详情3 J& v# Z; r2 T' D! p ①RCC时钟
' J6 d8 l% y! A- c0 v8 ~( U 该函数位于bsp.c文件下面; ( D) k' R7 @9 i) K& ~ 我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。 % C! t1 X! g B& ], G& w. J, Y! w ②USART引脚配置 . ?; D$ P7 L+ ]2 }$ i
" r+ Y; A5 m3 f4 X O0 D2 k 该函数位于usart.c文件下面;8 `3 y4 B Q" { 这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。6 g. r$ l3 p2 E, h, _! K. v4 a 注意: 0 T4 \& I( N% x3 V* V 上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。 9 o. F! z# P" u% P& B5 V ③USART配置) b3 e7 v+ b: F0 e E3 ^ : c Z1 ~' K O7 Z( w
该函数位于usart.c文件下面;& R' i* M) }: x/ ~4 H8 F+ q * b2 {# v% _8 l# Z) U" D: M h4 L 这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...$ m2 o6 i: d r! A1 y( n1 t1 K) T 注意: : X; q7 c9 ^* q! b 上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。 . K2 Y, }8 p' [ ④NVIC配置
该函数位于bsp.c文件下面; 要使用中断,必须配置NVIC,这点也不能忘记。4 d6 e9 Q) h: W0 @4 [ ⑤串口中断接收函数
/ Y. Q' e1 a) u4 Q$ M 该函数位于stm32f0xx_it.c文件下面;# Y' a+ {0 j. ~( y$ d1 z 中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。 . m9 W6 [* V7 X0 C* L" m8 C 2 f6 `, W. m) v9 ?0 }# Z& X 说明 . Z) E7 F- `$ P- [$ w# s- B3 |- c4 n STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。6 `: L8 W Z5 c8 j2 x % s s0 g. N) Z/ f5 Y 以上实例总结仅供参考,若有不对之处,敬请谅解。0 P6 @) D! Y& n8 k+ h3 t3 X ( o# m, `! [8 i8 ?" \0 b ' g# ?6 W5 a. \; {3 u+ k: L/ u |
【评分有奖】STM32 AI Sidekick聊天工具上线,快来体验一下吧!
ST TouchGFX 实操系列视频+如何选择正确的帧缓冲区策略
ST TouchGFX 实操系列视频++如何添加图像
ST TouchGFX 实操系列视频+如何进行屏幕转换
ST TouchGFX 实操系列视频+控件的淡入淡出
ST TouchGFX 实操系列视频+移动控件的三种方法
ST TouchGFX 实操系列视频+如何创建用户界面(UI)
ST TouchGFX 实操系列视频+如何安装TouchGFX Designer和STM32Cube软件环境
【经验分享】STM32F1 GPIO工作原理
【经验分享】STM32F0xx_DMA收发USART数据配置详细过程
微信公众号
手机版