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

【经验分享】STM32F0xx_USART收发配置详细过程

[复制链接]
STMCU小助手 发布时间:2021-11-23 20:54
前言; \2 q2 ]& m/ z
串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。
( Z3 `) p0 {% L今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。4 K- c0 S# M' L* m1 T
下载6 h# z5 y7 `# G& X' u% u
ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。+ n& v0 c" w; A  |, P  O
今天的软件工程下载地址(360云盘):
% x, {. {+ b0 r2 v/ P' Rhttps://yunpan.cn/cS5TeTVUWdc7V  访问密码 9b8c
. j7 y0 E5 {/ E: j/ @, y& y5 s! D" M; D; B$ ^
STM32F0xx的资料可以在我360云盘下载:
$ k* ^4 I5 R1 Thttps://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c377 C8 ]; d& E2 I4 I4 z. s! A

! x$ [+ T+ ~, {3 K9 ?* q准备工作
  m* o3 J. e. c/ o& u7 S; |) ^$ t& L' C* H1 i4 S) s) E
①新建源程序文件
" Y5 s# Z! ?! ^8 `: |0 q! z4 z' T5 |; E7 m
一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。
% c% D! I7 ~3 ?6 W7 F$ N
- p0 m) r* `8 q  c- g7 ~新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:( o$ O& B# {& u! n. F8 i/ L! r& s, y

2 C/ q8 P7 g4 ?- |) q$ c/ x
20160528183341337.png

' n, F  q# C3 r0 Y. A4 l/ {# |3 d: U; W( N. X( Q5 R) ?  R  n, n2 U
注意:
: t# T6 j  @8 r9 O3 T
3 u: y& }* g2 b& [: ^9 I5 }文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。
" U) p- A+ S) K8 q
- ?7 d, G1 M7 ^- Q源代码详情: K) S- V& R5 m& e, f5 C4 N
6 d2 e# L& @1 X( t
①RCC时钟
; x, k' q0 N1 l& ]9 G; N
3 G8 w) W) C8 b+ A( N
20160528183349228.png
1 K8 T' A/ I; K3 i) I+ f' Q( I" H
0 V- N' c+ e0 ~5 Y) S% m. k; x" R$ A
该函数位于bsp.c文件下面;3 ^2 x- o( @. @9 |6 [5 L
7 ?' B/ c( Q; O, W: {; G8 [  @
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。  |  Q5 V  W- z* J
% X8 O/ ~1 `. D; S0 C7 V
②USART引脚配置
( L, G! o! }  [# ~' V- m- e$ n+ i1 t
5 V. k9 x$ Y9 U$ R
20160528183356478.png
* _0 c/ Q: a( j

" k9 S3 Z: \. X2 p. F$ M- L该函数位于usart.c文件下面;
3 |% }  h% b6 N' t3 H" ^3 }2 Q
/ x/ K0 t0 _* w* c" K这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。2 |7 F$ L6 ]" ?9 K0 c& f

3 }0 Y: u0 a% h2 W+ Y5 c注意:" ?$ ]- M$ H" Q. C

/ h6 L8 K  N# B! }3 |5 n2 d. P( P' u/ n1 w上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。  Q/ b6 U" @& Q/ V# n/ M& z

  G9 p7 h" Y6 ~1 P# T4 Q: S9 V③USART配置
( Q1 l. b& L/ f3 w1 R9 U5 u$ R( m1 B1 o9 n* p- n
20160528183405770.png
. @7 }) C3 Q: w
1 I& s6 E2 Z! [! w# g; f# v
该函数位于usart.c文件下面;
9 T5 W( I5 [  ~: J+ s
! m2 [! R9 c2 P, ?+ y; X7 ~这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...- f2 S+ m. z: Y2 d
2 e5 X8 f: W3 g- Z
注意:3 l: h/ i# A2 i) T2 T8 E
' }) k7 t/ c6 g5 j% l
上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。) [) [6 v; G6 U% D8 c6 S7 e

' S, I) j. b/ v0 v& U④NVIC配置0 M$ w' o, C, O  b" U0 `" [! t

! O5 S0 Q5 d3 u
20160528183414692.png
& i1 w- r% d# u/ o# J5 c2 U

8 a8 K2 }3 I' s7 A6 h) p  |' }该函数位于bsp.c文件下面;6 r# H1 O3 i9 Y) j5 G

3 c4 ?; J7 e4 w$ e要使用中断,必须配置NVIC,这点也不能忘记。
# L# V  c8 X2 i7 ~! S* k1 G& w  q( H
3 J: l1 y6 @7 T, m+ g⑤串口中断接收函数
* A/ A  Z; u) Z  ~/ A5 E
$ C# C# Z$ Q; h7 y6 P
20160528183420973.png
: s3 W& V+ @% m" n7 g" T) ~
# V* n* B. T* k5 s7 b  k3 B  s
该函数位于stm32f0xx_it.c文件下面;
, X5 {4 O$ x& A3 P6 g0 h. a% f0 N; f5 `! T
中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。( ~( ?/ d' x& j: r- a: F1 M8 [

9 h2 c4 W$ Y0 |, R
% D5 x! U7 i, i3 ^  N5 q) {, a
8 p1 n6 i/ _/ Z. j8 }4 C7 r说明1 s$ u$ Y& }! }4 f4 M4 V8 @) ]: X, T

7 ~/ u: ?  j" @- [9 O/ GSTM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。
, p+ Q& y: L! Z+ ^- \" [; m, ?) I" T
! O: W2 o5 {8 f7 ~, {' ]& z" ]以上实例总结仅供参考,若有不对之处,敬请谅解。
0 p7 W( F8 E: B* a4 m( O! y
0 L  ~# C- Q/ }/ f
! u4 k! G; S  Z+ G- _* i: h- h5 o$ D4 A0 d& }
收藏 评论0 发布时间:2021-11-23 20:54

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版