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

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

[复制链接]
STMCU小助手 发布时间:2021-11-23 20:54
前言6 H6 K* F) n, ~5 G8 r' U
串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。
& A( G5 V: g" E5 |0 i* Q今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。
3 a5 g) C5 t% B9 J: @3 ~' |下载! ^2 k4 A1 j  r5 n
ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。
4 X& {8 \; s# f今天的软件工程下载地址(360云盘):2 d. D. M* p8 `
https://yunpan.cn/cS5TeTVUWdc7V  访问密码 9b8c
$ T! u- H9 r4 K/ Y! M, w7 T( s3 M$ R) ?
STM32F0xx的资料可以在我360云盘下载:# p5 w. g1 P$ k- `, k% C
https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37
- b  i5 @4 c9 p: s+ e1 ?: Y8 E! v, x1 g" a( C6 _' u6 n
准备工作
5 v6 |2 v& g* I. l7 g, W6 p
9 W( v. J+ a1 k①新建源程序文件
% c3 u1 c$ z2 b  n4 [2 e9 r/ k' [
6 r- |3 g# B9 T: R  ~$ f5 L( ^  j一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。
' |: ^- v3 b- h+ M
& l, k8 Q9 X  ?$ `8 |; _# K' x新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:0 P! P8 R3 t% y  R, i2 t

! O% h, Q) {2 q: ^$ B; {5 S" b$ ^4 d+ o2 N
20160528183341337.png

3 ]2 f' r& ?) R3 L& y- w: r
& D  C9 N! A# p注意:7 C) v6 B. P, \% I

! x  I. e. O. E2 j) l7 l文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。1 H! f8 H: b0 U+ V- q: y
, P3 h1 X5 x7 D, a% T4 R$ @' K
源代码详情
! l7 C+ @6 o8 N5 K# z2 m+ r8 e- A/ m( S' p
①RCC时钟, v! \8 ~& }8 x3 J
! p" j% G1 R2 Z# g
20160528183349228.png
. n' E; Q7 ?6 g6 p( M3 m2 t% ~

6 V8 L: y: k, t% x5 L该函数位于bsp.c文件下面;2 T- t& d6 e  R( Z; g* G8 Q7 x
  }/ h2 L% `' y# A0 p& y
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。
" w# y- g- ]- s  q' ~; ^# ]5 S8 k5 k- I$ z/ U; U
②USART引脚配置2 S9 M+ g, x: {: X# Y# E
. }  i1 L. c$ [4 W4 P
20160528183356478.png

8 b) R  R1 k; |: s2 @& r/ L. b
! |: L: p) H. t- J; A2 }; k& C该函数位于usart.c文件下面;* e0 p! |$ I. o1 f# f
0 m+ L3 U; h: e6 o8 K! g" ^8 S
这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。* o( u* z" a# }6 }' z

8 D5 u# x# W& c注意:
% H4 g* w! u- G7 ~' h: C6 S2 N7 a$ _+ n
上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。( n$ j/ t/ t7 `8 \$ k

% t. S, W! S( C' X3 p$ {& H③USART配置
2 [" M- R4 ]6 L! y+ ^9 g- z/ J0 {' C: R% ]8 @
20160528183405770.png

1 Q, Y( Q: `( R5 o* d/ L( c; i; n  [4 _' ]# T% _" F: L7 [
该函数位于usart.c文件下面;
6 i/ F6 }: D: L! x# W
0 F& L( b0 I% o# ]9 o这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...
$ k1 W& }: H' S  \! v
8 Z# \. u- V; p6 }7 Y  f! _注意:- B& f) I6 s7 F5 M: _6 y
; z. N5 [& ]2 D  n" [
上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。, ~) e3 ]" p* q$ z6 `1 v4 o
, o2 f( l; H# X6 P/ L  K
④NVIC配置
+ c  O2 E& }: N
$ e* Y6 [% y: e  E
20160528183414692.png
# V4 ]# F2 H# E; `- M) u
, N3 W$ @; M  x' n$ U, q- m
该函数位于bsp.c文件下面;
. k/ N2 B7 \2 j9 ]7 O* ~8 R: R# K" x& F) F4 l( X, i9 E$ S
要使用中断,必须配置NVIC,这点也不能忘记。8 T% _6 b$ J1 t2 J
5 z4 O, l4 v, s( L2 p5 b$ U, y
⑤串口中断接收函数
' s" }$ Z; F5 a4 W" P, X
* T% c" y! G0 o( ^  a) s
20160528183420973.png

9 Z! ]/ o( B$ F& u3 e6 m# w
5 l- {2 F% m7 l6 t. H+ a% W$ ^该函数位于stm32f0xx_it.c文件下面;
! a# s4 f' r; ]% z+ K  D/ `; D/ _1 g+ g9 q- ?& Z) A
中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。
1 z8 W! h) y4 L' p( i" {6 k* A8 ?' }; Y" h; N3 o

' ]% L' j  K$ ^. f# z
" |* K( a, k2 F/ r9 h/ R3 _说明4 S+ m( L( x( m1 F1 v, ?& Y) q

( U4 s, |! @* r6 Y2 G3 XSTM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。4 P+ |1 P+ v% B4 K
1 a: i* ^: T! E! {6 _  Q4 F4 M. O
以上实例总结仅供参考,若有不对之处,敬请谅解。: U$ i0 _$ O( B9 J0 c

) M: C* d% e; d! y% y7 `
$ J4 W" O  h( l0 t0 \
! z2 N) S- k. V& Z0 {2 R" R
赞 收藏 评论0 发布时间:2021-11-23 20:54

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版