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

基于STM32F1串口通信经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 17:02
1、处理器与外部设备通信的两种方式:
( U! h( z# z5 X, {/ P5 j- {& D1.并行通信    -传输原理:数据各个位同时传输。    -优点:速度快。    -缺点:占用引脚资源多。" J% S! y4 |$ g8 |$ R
2.串行通信    -传输原理:数据按位顺序传输。       -优点:占用引脚资源少。    -缺点:速度相对较慢。
$ o4 Z, p- _/ U6 P  S
5 L1 M" A9 x$ g) C" d2 T% }2、串行通信按照数据传送方向,分为:
# h' @. C' J9 Z5 K( I6 @1.单工:数据传输只支持数据在一个方向上传输 。
, ^- L8 E5 h4 R9 ^4 Z$ J2.半双工:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
" F, `4 D5 m" a9 l4 \# s1 E8 B. e" }5 c3.全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。. B3 `. u" \9 N2 B' Q& r# u2 ?

/ V& Q* l1 \& D$ x2 J! `
2019080916310217.png
2 F: D8 V' v- _5 }) K( X. U" ]                  : Y: r1 F& [! ^" X- k9 Z
3、串行通信的通信方式 :
  [! _7 o1 F  [4 L1.同步通信:带时钟同步信号传输,根据时钟信号传输。     -SPI,IIC通信接口7 }. r4 p7 G! F8 w, D0 b
2.异步通信:不带时钟同步信号,需规定波特率来通信。     -UART(通用异步收发器),单总线
( D$ T0 U' L7 a+ P" m1 r
( W4 F! V/ x; o9 c+ `
]I[4S$KIJU{`GL]_`T`}RYJ.png   ?8 W/ p8 I, w, b  N! Y/ P

1 ]. J7 L5 d- t$ w

, I* C/ l7 F; D" R+ W) M4、STM32的串口通信接口
$ X8 o0 H$ z0 S( ?1.UART:通用异步收发器% M8 j0 B, ]. |0 U3 k
UART异步通信方式特点:( J, Z9 V7 d  o0 r
全双工异步通信。
4 G! ^& L4 r: T/ F- {! D0 [+ U分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位);
; d& G5 P; a" @, y" K0 f% E可配置的停止位(支持1或者2位停止位);0 F- j$ ]% H. l. W; r2 s* I6 K. D0 i
可配置的使用DMA多缓冲器通信。
: W! v& E- M. N4 P单独的发送器和接收器使能位。1 D$ ~) K: m/ i- Z
检测标志:① 接受缓冲器  ②发送缓冲器空 ③传输结束标志 多个带标志的中断源。2 U" ^% E; ^8 m  K
触发中断。 其他:校验控制,四个错误检测标志。7 P6 d$ J+ f5 W1 R& Z2 H6 L
2.USART:通用同步异步收发器9 `( M% t" G, S5 I

9 O* y" e+ b7 M4 b$ h% x. w
5、UART异步通信方式引脚连接方法:
, g4 C( R9 \% m& C-RXD:数据输入引脚。数据接受。 -TXD:数据发送引脚。数据发送。' |0 {% S8 g4 M
' g  ^- d+ Y9 g- s. L" y
20190809173654287.png
8 w5 D& K: a5 u( }2 |' h         3 a2 [9 P; ~( V, U6 w
20190809173713997.png
: O" t( Z0 B' X+ f0 S3 ?3 d/ d

! i7 u  Q2 ?$ k& T/ o! Y B7]BQGVFQA232QK]6GJ]3ZB.png
$ I0 l% T+ r- q7 E9 N* j3 j

; t! h9 ]1 h, C6 t6、串口通信过程:          ! a# Q8 T2 e# B" Q8 n+ L  H$ Q

: n! e% [. Y7 \% q- ?, g
20190809174508724.png + }( J# b. e1 s2 @+ L& q

! D6 W( j( Z0 D; v4 {7、STM32串口异步通信需要定义的参数:$ |  |  w+ Y$ H5 @* K6 U3 y
) w6 g5 e$ l: @$ s" A
起始位  数据位(8位或者9位)  奇偶校验位(第9位)  停止位(1,15,2位)  波特率设置3 H3 A$ [+ R# D* Z8 F% K5 D
) Y9 B9 E; U0 R3 C/ `: P3 L
2019080917480567.png
. W9 [7 X1 s0 o2 `& V$ L/ w! G- j2 h+ k; [/ C( k# x
8、USATR框图:                             3 U( `5 Q  U3 H8 L& P1 }3 z) C

2 L5 [4 l! m; m) M6 M5 `, R0 Q" k
20190809174858223.png
  e. W: f0 c8 a& n  g: T- p( Q- u7 t/ |7 n, B2 U$ _9 _- x& v
9、常用的串口相关寄存器:
8 O; o6 h- B5 p9 D1.USART_SR状态寄存器$ q. d4 q8 ?) ?
& g, J$ f2 B9 K. y' T4 F
20190809175826741.png ; m  F" @: {8 H2 z# I
- X. e6 ]" p0 C2 I% B) E
2.USART_DR数据寄存器. `* X. v' g5 y0 p- R! u9 y

; b$ h7 ], f8 Z1 A- ~4 ~& @2 [( d
20190809175854511.png 7 J3 e. j3 k; q; J6 o9 H

/ i! p) c% V( ^6 ]7 R9 h. |3.USART_BRR波特率寄存器6 \, Z* M( ?1 ]: F
% {3 Y' v& }4 P+ k+ S
20190809180030512.png - D4 ~6 y6 d6 n& b/ d) a

2 a" ]% f5 j: u! C: p波特率计算方法:- d9 v' r  W" j

3 G$ T  F/ C1 t7 W' H' f
20190809180731250.png
- q, d+ r$ o6 R  \; F4 r& B( a0 C. N9 f# X% w, K
20190809180801259.png / _7 Z* f: v7 q$ B1 T$ Q

% {& q' ~" ~9 l' q& T, g8 Y10、串口配置的一般步骤:# a  Q) q* S( I; X% C  D
串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();+ b7 P: Y( J: ]1 G! q
串口复位:USART_DeInit(); 这一步不是必须的
6 B% d: d- V4 ~7 u* fGPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP  l/ \4 ~- c3 [
串口参数初始化:USART_Init();% j" L! }; I, v6 K+ r9 V  t6 H) ^
开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)    NVIC_Init();       USART_ITConfig();' E- H1 V+ n/ u0 ?6 }  X# n9 u: t% H
使能串口:USART_Cmd();
" I- R8 G: }2 w4 n! ~7 e编写中断处理函数:USARTx_IRQHandler();
8 c0 |+ P4 O# k3 g( R串口数据收发: void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据% g- `+ |- R) G" @* h) R
串口传输状态获取: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);
! ~2 O' {3 {1 F, m————————————————; h& R6 S% H- ~( E' {' q7 C- `
版权声明:集中注意力619
9 S4 D. S! r9 Z+ _如有侵权请联系删除% y$ t6 G6 n" J7 J& s

- \5 |: F: v! c  G
5 B: c6 [4 R! y, f6 ?+ C2 _0 s& p) D' [" w
收藏 评论0 发布时间:2023-5-14 17:02

举报

0个回答

所属标签

相似技术帖

官网相关资源

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