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

查看: 4945|回复: 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管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版