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

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

[复制链接]
STMCU小助手 发布时间:2021-11-23 20:54
前言# \& G) m4 s* Q! K) p
串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。3 \" m8 v0 C( G6 w8 N( r- N
今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。: E% D' X8 n. h/ l
下载
6 y7 o) X" B; \, X$ `4 j; cST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。/ i% B5 f' @& L3 {# d, n( t& g: E
今天的软件工程下载地址(360云盘):
9 |% Y3 c& B  a& zhttps://yunpan.cn/cS5TeTVUWdc7V  访问密码 9b8c9 p, C# J8 J0 n; ^5 m
9 A7 a$ E7 g3 P
STM32F0xx的资料可以在我360云盘下载:8 H8 G' N9 m' ^( h5 r( Z& ?
https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37
7 z7 p1 s  ~: O6 A8 _  m3 |; y  t
准备工作
2 V. r8 _+ o& }- `+ R& d0 e) u1 _/ b9 l5 {  ]. X) c1 u9 O6 c
①新建源程序文件4 d6 g. W6 ^2 j* T" }

* j7 C0 s) u5 g: }* K/ K一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。- }+ x% u/ \- u9 `
' I: E, `* m$ I5 i
新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:
( p$ C+ e' |( m; g( G# v
: d+ C6 {0 E& v& q& b
20160528183341337.png

' R7 r+ e+ t$ t5 Q* s$ A; c% B6 h/ M& x, j( Q9 O! e7 j( g$ q. ~
注意:
8 x, s8 h9 y0 M- p% N! l! @' a0 I# j0 q8 C: m1 Q; L
文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。
8 Z7 b! _, v$ `5 i+ a, o* n. B2 g4 ?' A2 p
源代码详情  X5 y9 V6 t" y% X# n$ e

4 r5 P1 b8 _/ y* Q6 `①RCC时钟4 v5 W/ C7 C) T3 d

0 Q" a: A7 m! A
20160528183349228.png

$ [7 a; N# ?, ~
; O9 V+ |$ G4 ?' a该函数位于bsp.c文件下面;
+ V& N! ~/ t, ]+ Q0 a0 z  B1 k( X0 f4 l8 e, ~* c) J
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。* r- c  ?- O3 f8 u! X7 R5 e) X
6 C  o# t6 v) U- k% F# r
②USART引脚配置
7 y4 r) f' B1 H; M- d0 R3 F. a: G* ?( h- r; J
20160528183356478.png

6 Y, Y5 X6 N7 ]) P# R: f) s4 h2 w" c
该函数位于usart.c文件下面;$ l( G! p8 ^6 X# W& i8 @6 _+ y

$ @6 y0 J( ^" j4 q. f0 J这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。7 }3 U  ]+ Z: A
; i1 _6 E1 h# n1 z1 |3 O
注意:" _, F6 S5 J  v) m4 N- C

. b' S' P0 L! ~( Z% T# q. s上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。* v3 x6 N& g( b- g* R1 i

/ G/ |' G0 L/ c' r③USART配置3 a; q6 T3 M& ?3 [0 k+ [

% Y# g' U; q# l
20160528183405770.png

9 ^: o/ n: a3 W9 a
9 ]) b7 J: U" h3 M: A- f该函数位于usart.c文件下面;
5 Y& o: I" r* q! `& j% j5 I7 K* D2 V, W7 R* {% l
这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...* k5 s. t$ \3 {+ `; ~; e$ Q! B

8 _5 l4 T9 O  x, |( ?注意:
3 p' o" |% L" P- }/ f- o$ A. M8 n7 o1 \+ A6 k$ e& ?
上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。" X; Q$ D+ ~/ b/ s
& g: Z: I3 P; J" h0 i3 w. Y! S
④NVIC配置
( D- K0 ^2 X# D7 R* N8 X) B  |3 o1 M" z; G. O
20160528183414692.png
( l  u) \2 `' F& ?$ @3 e

% Y3 L" q2 p/ V: \. ]该函数位于bsp.c文件下面;  y+ Y' G) D. ^/ ?* ~
! ^2 f$ V. }+ d6 U. C1 |7 S
要使用中断,必须配置NVIC,这点也不能忘记。
' t& v4 K7 j- }, J. Q# R2 l7 `; C
% j# l  b6 @: ?" F7 t% E; m( G$ f& g⑤串口中断接收函数
; h' ]8 r0 I( v: |. x! t! p9 a
4 H# C1 _" K+ t- w8 c$ v
20160528183420973.png
# [0 C8 _3 g) M1 Y/ W5 q$ Z' {
- d% Y  T, b' B
该函数位于stm32f0xx_it.c文件下面;
' @# W. Y7 u4 h: r( y/ M% w7 q
* }2 R+ |7 v$ _  y/ E  G中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。
/ c5 z9 Y0 p2 D% [% W
$ r+ B6 `4 ~' X! D3 t8 f" O2 C
% d& F5 y& c' U8 |# k: Y1 m, i  Y5 N$ U+ f* @4 }5 x8 [1 K8 h
说明
5 A+ f/ Y, k) U  o1 a) Z4 j# s' [0 U9 Z  x. i1 b! K& ^* N* C) h
STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。
( ]: u8 j  o, F- e. D* @4 U, d" q8 t" S2 M. H
以上实例总结仅供参考,若有不对之处,敬请谅解。* \. o2 b5 z' ]' G

/ l2 d& X4 T) z* m2 E2 y6 _2 z6 f+ U5 t% Y9 c

- x+ R7 Y- F0 W( [) T0 f
收藏 评论0 发布时间:2021-11-23 20:54

举报

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