你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 4949|回复: 5

STM32F0xx_USART收发配置详细过程

[复制链接]

49

主题

19

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-16
发表于 2016-5-28 18:36:46 | 显示全部楼层 |阅读模式
前言
串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。
今天主要总结串口简单且常用的功能,发送字符中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。

下载
ST标准外设库和参考手册、数据手册等都可以在ST官网下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。

今天的软件工程下载地址:
http://yunpan.cn/cS5TeTVUWdc7V  访问密码 9b8c

STM32F0xx的资料可以在我360云盘下载:
http://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37

准备工作
①新建源程序文件
一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。
新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:
STM32F0xx_USART收发配置详细过程1.png
注意:
文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。

源代码详情
①RCC时钟
STM32F0xx_USART收发配置详细过程2.png
该函数位于bsp.c文件下面;
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。

②USART引脚配置
STM32F0xx_USART收发配置详细过程3.png
该函数位于usart.c文件下面;
这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。
注意:
上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。

③USART配置
STM32F0xx_USART收发配置详细过程4.png
该函数位于usart.c文件下面;
这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...
注意:
上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。

④NVIC配置
STM32F0xx_USART收发配置详细过程5.png
该函数位于bsp.c文件下面;
要使用中断,必须配置NVIC,这点也不能忘记。

⑤串口中断接收函数
STM32F0xx_USART收发配置详细过程6.png
该函数位于stm32f0xx_it.c文件下面;
中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。

说明
STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。
以上实例总结仅供参考,若有不对之处,敬请谅解。
<
回复

使用道具 举报

31

主题

393

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-28
发表于 2016-5-29 11:40:58 | 显示全部楼层
楼主,你好,你的中断接收可以进入中断吗?我运行你的程序,是可以发送打印USART_Rx_Tx...的,但是我用串口助手发送是不能进入接收中断的。麻烦请指点,谢谢!
回复 支持 反对

使用道具 举报

31

主题

393

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-28
发表于 2016-5-29 11:42:36 | 显示全部楼层
楼主,你好,你的中断接收可以进入中断吗?我运行你的程序,是可以发送打印USART_Rx_Tx...的,但是我用串口助手发送是不能进入接收中断的。麻烦请指点,谢谢!
回复 支持 反对

使用道具 举报

49

主题

19

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-16
 楼主| 发表于 2016-5-29 21:58:48 | 显示全部楼层
alisa123 发表于 2016-5-29 11:42
楼主,你好,你的中断接收可以进入中断吗?我运行你的程序,是可以发送打印USART_Rx_Tx...的,但是我用串口 ...

我在开发板上测试过多次,没有问题才上传的,而且代码是最新的(你可以看,我那还有日期),建议你检查一下接收引脚是否连接良好。
(接收到数据会响应中断,再次将接收到的数据发送给电脑)。
回复 支持 反对

使用道具 举报

0

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
2019-7-20
发表于 2017-6-18 11:55:33 | 显示全部楼层
楼主,下载的东东不在了,能重新提供吗?
回复 支持 反对

使用道具 举报

1

主题

7

回帖

0

蝴蝶豆

初级会员

最后登录
2019-6-26
发表于 2017-7-20 09:16:21 | 显示全部楼层
您好!能否告知您STM32F0xx软件工程资料在哪可以下载到?原来的云盘链接打不开
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版