前言
串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。
今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。
下载
ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。
今天的软件工程下载地址(360云盘):
https://yunpan.cn/cS5TeTVUWdc7V 访问密码 9b8c
STM32F0xx的资料可以在我360云盘下载:
https://yunpan.cn/cS2PVuHn6X2Bj 访问密码 8c37
准备工作
①新建源程序文件
一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。
新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:
注意:
文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。
源代码详情
①RCC时钟
该函数位于bsp.c文件下面;
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。
②USART引脚配置
该函数位于usart.c文件下面;
这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。
注意:
上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。
③USART配置
该函数位于usart.c文件下面;
这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...
注意:
上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。
④NVIC配置
该函数位于bsp.c文件下面;
要使用中断,必须配置NVIC,这点也不能忘记。
⑤串口中断接收函数
该函数位于stm32f0xx_it.c文件下面;
中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。
说明
STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。
以上实例总结仅供参考,若有不对之处,敬请谅解。
设计资源 培训 开发板 精华推荐
- 低压有刷电机系统
- VN7003AH评估板
- LTC1867LIGN 微功率、3V、16 位、8 通道、175ksps ADC 的典型应用电路
- DC751A-I,使用 LTC2224IUK 12 位、135Msps 高速 ADC 的演示板,VDD = +3.3V,1MHz
- MIC2182,适用于多种应用的高效同步降压稳压器 DC/DC 转换评估板
- DC765B,基于 LT3479EDE 正负转换器的演示板 (LT3479 ×2) @ 2.5V = VIN = 4.2V,VOUT >= 7V @ 600mA 升压,2.5V = VIN = 12V,VOUT = -5V @ 600mA 逆变器
- 具有 PWM 调光功能的 NSV45060JDT4G LED 灯串的典型应用
- 血压计
- LT3761EMSE-1 具有 25:1 内部 PWM 调光功能的汽车前照灯用 94% 效率升压 LED 驱动器的典型应用电路
- 使用 SparkFun Electronics 的 ZED-F9P 的参考设计
- 恩智浦S32K3 三核带锁步功能的车用MCU
- 英特尔业绩低迷牵连尼康业务急转直下
- VIAVI OneAdvisor-800强化功能,简化5G和4G部署和维护
- SICK推出TiMxx系列2D LiDAR传感器
- 打造高端游戏新体验,优派ELITE系列电竞显示器新鲜出炉
- 【库函数版本】基于STM32F103的MPU6050的原始数据读取程序详解
- 【STM32F103攻城笔记】STM32之MDK(Keil)环境搭建(一)
- 【STM32F103攻城笔记】STM32之MDK(Keil)环境搭建(二)
- 【STM32F103攻城笔记】串口 实战
- RCC—使用 HSE HSI 配置时钟树梳理(在STM32平台下)