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

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

[复制链接]
STMCU小助手 发布时间:2021-11-23 20:54
前言
  k; b. y0 }6 R串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。; }2 u5 v/ a# z1 ^# A
今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。& h+ E! K5 N; Z4 ]$ E( G
下载; m5 N: X0 |+ ~8 i
ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。
  H8 Q% Z- h  m' P今天的软件工程下载地址(360云盘):* P8 ^5 a) ~$ z, P$ ?* R
https://yunpan.cn/cS5TeTVUWdc7V  访问密码 9b8c- ^' Y5 R* Q2 u8 m3 D' b
. B0 v0 \+ w  P  ~2 ~# v  s
STM32F0xx的资料可以在我360云盘下载:
; u! A8 D0 ]9 P" @. Qhttps://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37
! W5 W% j' S4 X) I. \
! g; ~. Q; e$ d+ |; y. D准备工作
8 {9 H. i5 d4 v) T% o2 \& c$ A9 L
: b) @# F) V' q' G9 ]; J①新建源程序文件
3 i" D7 v! I: W4 d$ `) ~1 `8 n7 d- V& R& s
一个工程项目在增加模块功能的时候,一般都需要新增加模块源程序的文件。今天提供的工程由于增加USART模块,因此针对昨天(上一篇文章)的软件工程需要增加模块USART的文件(usart.c 和 usart.h)。
* V* h; ~% p; G' Z/ A  U- {, I0 ]+ x0 R3 ^$ t: o0 F
新建了源程序文件,还要添加到工程中进行编译才行。还有需要添加我们使用到的标准外设库文件到工程,我已经将文件新建,并添加到软件工程中,如下图:
; v2 P2 |+ x/ ]2 J, ?" l7 u+ ~2 j+ W' E0 u, l
20160528183341337.png

! n% {: z! Z* \; x/ J1 q& x! n4 V. I* }, d  S
注意:, X, ~6 J5 {5 ^0 V5 ^' L& y1 `
4 R; P0 l+ o; |- A; ^5 ^
文件所在位置最好对应目录,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp组下面。
, ~9 ~- ~  P( c$ [8 P8 w
6 Q) w' {# n% f! {3 M源代码详情
6 t( o* B; m2 B; T" Z$ ~& b: d- l! z+ ?9 m( E: _4 F* K8 [
①RCC时钟
8 Q, o+ }# w- V2 A* s2 C7 `
* b' q/ i0 [, X: ~4 ?! D
20160528183349228.png

3 S+ j* T! o) w; A( i2 g8 t. H
2 J+ g7 r2 b2 x! e( A9 @; ~该函数位于bsp.c文件下面;
& @4 s: Q5 X  u( L" w# H3 t
0 x6 ]* E3 [% u我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于没有配置相应RCC时钟,让我找了很久的问题。
- n8 |" @  }. P6 t% q7 F$ e; Y. L. x& l' o' O7 q0 d4 U
②USART引脚配置$ b4 b$ Z2 C4 O6 u- H9 G
: \$ @# d3 S1 z) `1 O
20160528183356478.png

/ f4 C; \- ~5 `9 N4 P5 N8 p& R! A2 w! b0 Q
该函数位于usart.c文件下面;0 g; K, H# t; H% N5 b% d0 u. Q4 v
% {2 G- U- A+ p* y8 t
这里的配置就是对串口收发引脚进行配置(具体参数说明请看上一篇文章)。
7 ]. U! e6 o* d/ L$ f, w% b  f" K2 M8 z( I4 I
注意:
$ A! n& \; u& _" ^! e/ ~: T4 Q/ z) J$ Y* V6 P3 C# n" L
上面红色框里面的配置是重点,必须对应配置才行。这里第三个参数“GPIO_AF_1”需要和你使用的外设对应。1 ]; y# u& k1 U0 P0 X, K

8 c0 T3 `3 F) f2 v+ P③USART配置: h9 L1 L* L. a, _1 q

/ V, p3 L. J* U3 K, |' R0 N
20160528183405770.png
8 d: P/ ~# N0 P0 B( J. E

$ U6 ?: y8 w8 G/ e2 }5 g8 W该函数位于usart.c文件下面;
' U7 t4 G8 s% t5 d
( n) T% o1 s" G) i0 p! p- d- J2 l这里是串口相关参数进行配置,详情请看中文注释。具体每一个参数的意思,可以参看昨天方式,go to definition...# B- I2 a% g+ G0 k7 ?3 p: q

7 G( b" t0 ~, T  c( _注意:
+ q5 i1 ?% t% W6 v- {6 D# i& j" j( Q  E+ o; p! c
上面红色框处,如果要使用中断(我们工程是接收),必须对应配置才行。* T2 a: g6 v% L
) K7 g% d% T4 N; e/ N
④NVIC配置
) \5 E. }3 h& ?; u* G5 i& _! I! Q4 N0 P3 L+ g2 |8 l
20160528183414692.png
! H' K4 x7 W( U! T% t% s* a" d

3 u( E. [4 f* j5 @/ A% r该函数位于bsp.c文件下面;
; \; Z6 r) x; G) f
1 A& x9 ~2 t1 h3 ~% h' _7 u: b" Y要使用中断,必须配置NVIC,这点也不能忘记。
5 Q, n% g% _% R
9 O4 J1 t: U3 \0 e- e( r* |1 h. C, [⑤串口中断接收函数' J0 U- b- ?# j2 l1 D

% c$ V( l. D$ H8 O% T, z
20160528183420973.png

# D% ~' O) d/ z5 ]0 L
$ U0 P1 v5 k3 m4 t6 M7 D% g该函数位于stm32f0xx_it.c文件下面;
6 j. _1 V! c' Y' o9 B! y$ `9 c5 O4 F  Z. Y6 [% ?) O7 e, }& W4 V
中断接收到一个字符,就发送出去(可以通过电脑串口发送字符,STM32F0接收到该字符又发送给电脑)。
; i" Q( v1 x- @2 t. I$ D, R
- J! v- [+ }" C0 ~8 _6 U6 \- O
( H2 g6 K5 Z! X! J4 I6 n6 k  e4 o! H( u( o- {% a% `
说明2 o) S8 b2 P" ~& u- D. s/ Y

* c- O& S( U' q6 sSTM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。6 c; q0 g( e' q* R
- \- e, ~# s8 d! d( S' K: Y. b  n
以上实例总结仅供参考,若有不对之处,敬请谅解。- H+ u5 O# x, Y* S
5 q5 D" I* k( q* R" A- o0 s9 \

5 q* ~$ L- l- U# \4 T) U9 m. h  \6 a( M5 W
收藏 评论0 发布时间:2021-11-23 20:54

举报

0个回答

所属标签

相似技术帖

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