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

基于STM32F1串口通信经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 17:02
1、处理器与外部设备通信的两种方式:, b8 _2 i4 m7 m. q& x; B
1.并行通信    -传输原理:数据各个位同时传输。    -优点:速度快。    -缺点:占用引脚资源多。
8 }# k5 u1 k. _7 C2.串行通信    -传输原理:数据按位顺序传输。       -优点:占用引脚资源少。    -缺点:速度相对较慢。
$ ]5 d$ U% u" p( ]: k) Y: i/ Y7 X
9 D0 x; H8 }% Q$ C) ?) B4 w2、串行通信按照数据传送方向,分为:
0 j# {# X+ T+ v8 ?3 ?5 ?1.单工:数据传输只支持数据在一个方向上传输 。0 [# j; W- Y* W
2.半双工:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;: l+ B+ g4 \" m! k
3.全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。. _, l4 C. V$ x4 \
, _, D+ t- M, Q) r0 r0 s
2019080916310217.png
  w% T6 ^" L2 f4 D1 R                  
0 h2 O# Y& w" G3、串行通信的通信方式 :+ Q  ?& N. Q% U, o
1.同步通信:带时钟同步信号传输,根据时钟信号传输。     -SPI,IIC通信接口5 ?* |" O# Z% ]3 B
2.异步通信:不带时钟同步信号,需规定波特率来通信。     -UART(通用异步收发器),单总线
1 U# W. K0 e8 ]# E3 h2 Q+ d7 k; }0 I) ?9 z& m/ n7 x9 i
]I[4S$KIJU{`GL]_`T`}RYJ.png   l3 ~: q) ^9 d

4 e% t3 C: L7 k3 k

4 k5 G- t& h) B6 A& O+ W- G9 G4、STM32的串口通信接口 :
- V: ?1 S  J' E! ^9 L* f1.UART:通用异步收发器
" |- E9 ]- M) b  @5 {9 _9 tUART异步通信方式特点:$ K3 r% s, `. t' B/ E, S
全双工异步通信。
( u) C8 E' o+ L" f4 v$ I( G1 d& K分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位);% O/ |; i6 f% x( M
可配置的停止位(支持1或者2位停止位);
/ B# u# F% Z7 g3 V6 r. M可配置的使用DMA多缓冲器通信。9 p0 q  o0 N! \
单独的发送器和接收器使能位。
& ]" a% ^. Z' A: g- s; Q检测标志:① 接受缓冲器  ②发送缓冲器空 ③传输结束标志 多个带标志的中断源。+ G& b; k; j# a
触发中断。 其他:校验控制,四个错误检测标志。
! D0 M' O$ g; o- b3 \3 G% C1 r9 k/ s
2.USART:通用同步异步收发器0 q1 z# [: @( @5 v

' ^) t9 s6 U5 w( A
5、UART异步通信方式引脚连接方法:
9 W) r- F7 [. K4 p! v-RXD:数据输入引脚。数据接受。 -TXD:数据发送引脚。数据发送。$ f/ h1 v% {0 Q- K. K4 ^
0 A& p  O! q' n$ \, P
20190809173654287.png   j- X' j$ o: n% A
         8 t9 C5 ^$ O5 @, d5 Z
20190809173713997.png
0 S8 w3 C( O; W# G5 G' _& Y8 I
8 E4 C' \. Z0 F5 I& m6 G
B7]BQGVFQA232QK]6GJ]3ZB.png
+ x- U5 U, _2 r$ `) \
6 w9 m$ p& k$ f5 L$ U
6、串口通信过程:         
% p: D% @6 e# T
  b8 M2 t2 W$ e8 o9 \+ ?6 r
20190809174508724.png ; q1 ?. t- c8 ?! Y5 e4 V8 `2 G( q

1 B% {7 X6 P+ S* \) G! m, b/ I7、STM32串口异步通信需要定义的参数:$ D( Y3 j$ z3 V* O' K/ g! k9 W

7 d6 N# o; k2 ?$ y+ w/ o" u3 B起始位  数据位(8位或者9位)  奇偶校验位(第9位)  停止位(1,15,2位)  波特率设置
5 ^- a4 X4 b  h5 D: V; c
3 g7 @9 G. Q- P; V! [, I
2019080917480567.png ) B! e: `4 D/ Q; M. \

8 J9 ]6 z5 ~- \5 z" b$ [8、USATR框图:                             8 q6 J* P2 k, p/ t
' i! }  S+ G7 t
20190809174858223.png
- V; W, b2 l& f2 x& L& b$ C; [8 `( o+ ?! @; a( D" ?6 O
9、常用的串口相关寄存器:
- X/ g! ~# [4 g0 ?1.USART_SR状态寄存器3 S7 d% r, ?& q6 z, ^
# Q# I+ l' b/ c0 E
20190809175826741.png
8 H# \! |, i7 n% w/ b) L* Y! ?
% N! J1 @: n& n* H& S+ I2.USART_DR数据寄存器. g6 Q! }4 V' @) I  y
) M5 l% k/ H' ~8 ]7 M4 u  A- A
20190809175854511.png 8 y3 ]$ y( N: a  @' Q- X
! i# R9 p3 Y. N6 |
3.USART_BRR波特率寄存器$ l0 v) R0 }$ M7 N- q
1 p1 i7 Y9 [8 M. L
20190809180030512.png / I+ ]7 b+ {6 r
, I+ ]: x; G0 f  X
波特率计算方法:
6 e9 e' _) z; Y- M" a+ q5 l4 f/ w
, Z$ v0 Y2 m% z; j& v4 Z
20190809180731250.png
' `( C6 z9 P$ I5 Z2 {4 z$ J- C! s" ~  k# }! J3 o* T
20190809180801259.png
6 X% [3 G/ g3 [, \. ~: T' s5 F. a
  r3 z- y. p2 \" o" \! |- ~
10、串口配置的一般步骤:
" X9 P( V  a4 q9 w8 i4 {8 c串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();% C( J) ~( p, m
串口复位:USART_DeInit(); 这一步不是必须的! j9 {" v: Z& ]* G2 U' X( g/ a& k
GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP
: `6 N: ]0 J  A2 }! K- r! v8 S/ @5 i" T串口参数初始化:USART_Init();
' b6 Z, L! x% H3 u- O. Q0 q* E开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)    NVIC_Init();       USART_ITConfig();. z+ B4 h4 |2 S" o: R' @
使能串口:USART_Cmd();) H) N) J2 w# k/ \
编写中断处理函数:USARTx_IRQHandler();
( V" _0 z0 o$ z. w1 G$ P: q& Y串口数据收发: void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据
/ E% U% d# _6 C# H* \串口传输状态获取: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);+ |$ a9 D1 \, b* {' M! U
————————————————
8 }" m7 J" L" K8 H版权声明:集中注意力619, X; `6 J9 j* \* T
如有侵权请联系删除
8 {; s$ }$ J/ ]8 N% q0 J
8 P  R2 G* I4 N8 b% i( m, Y- v
+ v; j# h* j2 [$ h
" g8 b& u. f$ i( u$ v# ~, Q
赞 收藏 评论0 发布时间:2023-5-14 17:02

举报

0个回答

所属标签

相似技术帖

官网相关资源

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