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

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

[复制链接]
STMCU小助手 发布时间:2021-11-23 20:54
前言7 \9 L- ?0 g+ O6 X
串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。' Y4 c8 [$ q" N# j) \& l
今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。9 a5 u3 Z( ~+ J
下载
+ h0 ?, x4 S) TST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。9 @+ z' H) {1 F8 M
今天的软件工程下载地址(360云盘):
( y, ?/ R, L% F; g1 Ihttps://yunpan.cn/cS5TeTVUWdc7V  访问密码 9b8c
, x8 R# L* i6 u4 `9 ^
8 _! ?1 E9 h7 d2 ^3 \% t3 kSTM32F0xx的资料可以在我360云盘下载:
& O" i8 O) w/ ?+ c* hhttps://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37- F' U+ R: W- J# |
$ @) z* m, j; L8 T; r# U6 O& o% a0 {
准备工作
- L& {: N* s  B( I; g% p: `% V! y1 p  U2 I8 W8 I
①新建源程序文件
) H0 n" v1 W; k. x( R# W9 ^) e
9 z, D- D" C( |# i8 W4 ?# w, g/ m2 Y一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。# h9 I0 B9 ]& \8 n/ c% ]6 B- t1 R( P

. I! o! H, Q$ n5 ~9 X( y! K新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:
0 E, |' T: T1 |/ \! \* H8 s- @3 T" r! I- ?$ H
20160528183341337.png
) ]0 b( a7 T% C: o

. k( A5 k& ?$ E7 s# U注意:3 y4 r6 L9 ]# T8 C% U5 M

5 s7 H4 S5 G  l4 g文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。' a: X) M. m# b

* e+ U) k0 b, e# V/ w, _& ~# X源代码详情4 a5 }0 m3 n# |" k/ M
: E( ^) q8 k' o2 d
①RCC时钟$ N, I' r7 J  e" p  T$ U5 v

5 m' i/ L- O  J* f# ^+ O
20160528183349228.png

3 Q7 \; i) R/ t* q% o' n4 t4 I, q; b% w! _3 z" j
该函数位于bsp.c文件下面;% T- G/ b. m# e  c  V, F
+ x/ H1 L3 F6 t1 Z7 K* u) @- @
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。0 b2 f  s3 U$ X9 d
$ H& @3 m. D" I
②USART引脚配置
* X4 c) N$ S! C1 r0 ~
! ^! C5 t8 ~- T5 P8 g) C1 K
20160528183356478.png
7 `/ b& H7 a/ g' j# s3 S
0 g% m' Z( `/ p5 _- q4 E* f+ h1 s
该函数位于usart.c文件下面;2 D) ?: C0 N& y$ P0 m
6 U/ v7 c. M9 P( S3 x7 s
这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。
. b. X  {% J/ P4 Z
- u1 |2 u9 F' n6 m& O注意:
: d) h! @- @5 r5 f0 j+ B* G3 d2 i& G& {  r7 [" r# i
上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。
! z2 d2 S! W- v
$ t* X/ C- X" Z8 g* t  u" W3 y③USART配置
. ~3 r! p" \& [1 F6 M2 \0 c8 A( b% v
20160528183405770.png
& [  A  c: ]: w$ w. z5 [" a
! \/ q+ R  ^' u6 H3 D' G5 z* D( W
该函数位于usart.c文件下面;
& I% [5 E& q8 v( o: }7 [2 G# ?+ K+ q3 ^# P7 G
这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...
5 g9 T4 _0 y) B3 ?( Y% O7 L
$ o7 h2 v* F/ z) g2 q9 N& U  }注意:8 r/ U9 G0 D* e' s) O* z: B

/ u* F. v8 m4 ?0 W5 x1 x上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。0 y. u$ C7 `* v

! V4 A' w7 s. w, I, _/ D2 }& Z④NVIC配置
% [7 A9 @/ t# c; h4 e& ^! X& J" Z, i# f7 ]8 M) j
20160528183414692.png
2 Y0 v" V8 e. f# O  g" N6 e

) m1 S2 e. J% M" I& b, F1 @该函数位于bsp.c文件下面;+ E1 K( B# t$ y  f1 k! E" _
. {: J3 {  t/ a- U. j0 O
要使用中断,必须配置NVIC,这点也不能忘记。8 L! J: [8 Q' n* d
8 u* B$ o" e8 }7 n! v, s
⑤串口中断接收函数
4 C  m% q" x# l; b) Z$ G
% E% Z. m. Q# }& E) a, `0 q
20160528183420973.png

( t. {1 V$ I. k9 i8 i  T3 a( ?  c$ C/ U4 B
该函数位于stm32f0xx_it.c文件下面;- i. H" G) v1 n; q' }; Y; t

8 y/ s1 _" T5 y" m# ]/ L/ m' s中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。
; o. e5 W- C1 c) x+ d, N6 N4 ^. |9 L) M, {. ^) E8 B
6 a! ]7 _* F" i6 ^4 j5 z

5 F8 z7 u1 Q( r8 R: z( o0 U+ c说明8 B' f( K9 ^* ~2 U

9 R6 [( B5 c4 _+ dSTM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。& b5 `  m6 z" G0 j2 t7 G

' R& c( i1 T  d/ C以上实例总结仅供参考,若有不对之处,敬请谅解。
  m5 }5 D4 \$ G) q: [+ x0 W3 {% f; P! W* J2 \, N
) _% F% }& {6 e' q( r
9 @% ^" @7 s& K6 z7 [
收藏 评论0 发布时间:2021-11-23 20:54

举报

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