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

基于STM32F1串口通信经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 17:02
1、处理器与外部设备通信的两种方式:( U, M3 G' B6 r3 x0 M' C) k
1.并行通信    -传输原理:数据各个位同时传输。    -优点:速度快。    -缺点:占用引脚资源多。; S  @3 b9 o1 \0 |& x4 T8 l
2.串行通信    -传输原理:数据按位顺序传输。       -优点:占用引脚资源少。    -缺点:速度相对较慢。% @# e: u, q/ g& ^) R8 E4 E! |

9 P+ u; Z- e& h8 Q) Q2、串行通信按照数据传送方向,分为:2 P" M% [& b# s: E
1.单工:数据传输只支持数据在一个方向上传输 。9 S" w6 p! t1 K0 q$ T" w! C
2.半双工:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
, A" y* R+ x. z+ P7 u+ U: h0 a. m. S8 e3.全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。  L  n* w5 v: @' f3 h& e

3 q; f1 Z, q4 ]7 z/ M
2019080916310217.png
) _' f% r1 j* k                  ) V* \( n* x6 Q& m+ d/ E. ^
3、串行通信的通信方式 :& {9 E! F1 D0 z2 q0 @
1.同步通信:带时钟同步信号传输,根据时钟信号传输。     -SPI,IIC通信接口
7 [4 @5 R* Z! I3 {, P! y2.异步通信:不带时钟同步信号,需规定波特率来通信。     -UART(通用异步收发器),单总线- ^% n5 a7 S; t: f

9 X/ w, b  F1 E7 C% u6 N
]I[4S$KIJU{`GL]_`T`}RYJ.png
9 {9 R+ V8 V( F' K2 a7 a7 H6 x. `% @/ v

' Z  t: \) h8 x8 d$ x) _4、STM32的串口通信接口 :
- h0 d3 Y3 t$ h6 C& e3 j1.UART:通用异步收发器0 k& J2 n' E3 T6 ]% o& ^) b
UART异步通信方式特点:
: @( E4 c: L% ]# U6 `! h& _全双工异步通信。
: k! D. o' }' O, O3 [/ t; N分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位);
5 c8 B- i, N' h2 q- r9 H. n可配置的停止位(支持1或者2位停止位);$ ~; ^3 P- ]! Y: h8 v
可配置的使用DMA多缓冲器通信。: @7 K3 @8 }; Q. w
单独的发送器和接收器使能位。: U" j1 [- W+ G( @" f
检测标志:① 接受缓冲器  ②发送缓冲器空 ③传输结束标志 多个带标志的中断源。; n  |4 S4 V* i6 S! q7 V
触发中断。 其他:校验控制,四个错误检测标志。
3 |9 }( x& V- i. I/ J* t  |
2.USART:通用同步异步收发器
" M% v, ~9 ~4 T. t/ R4 u3 P, b$ }7 J+ q7 s4 T
5、UART异步通信方式引脚连接方法:
, K# A# t; t. A- T8 x+ F! W7 X-RXD:数据输入引脚。数据接受。 -TXD:数据发送引脚。数据发送。
3 |+ y# H6 N5 J. }
# r3 y; H6 U. i: a/ t/ K' b
20190809173654287.png # R' |6 x* m6 X3 x
         
: V7 m4 o0 R0 {0 @. }2 d 20190809173713997.png
& Y: {* @2 ^8 g3 r  Q1 g! V: [% v
( a/ w- s* v0 |$ Q0 r% N1 G3 k8 G
B7]BQGVFQA232QK]6GJ]3ZB.png , o7 X8 a" q8 X/ j7 k0 ~
% D$ |9 s1 {2 ]3 d3 M5 F
6、串口通信过程:          : b$ \9 d6 J2 s& w; V7 h  I
3 O* T4 R5 K% }+ a, {, i3 N
20190809174508724.png
, D7 q2 a9 Y9 _1 G7 @' ]* _% M% y0 K( ?% L! X; Y$ M) h0 N
7、STM32串口异步通信需要定义的参数:
$ o+ _7 i* A% Y7 q/ D
( |! f% F6 _: V0 ^8 O) M起始位  数据位(8位或者9位)  奇偶校验位(第9位)  停止位(1,15,2位)  波特率设置
% o, Y4 u) j; p0 x9 k, ^9 Q4 ^( g% V+ K5 d% M5 X# S
2019080917480567.png
0 B& z2 X$ d0 s% n* H
( o0 X. W6 j6 ?8、USATR框图:                             : B* _" d# q3 ^& o% V
1 y! ~$ @8 s. T0 |9 @/ T
20190809174858223.png
, f9 K( y& G, ^. j6 m$ f
; F/ h$ h" e2 Q3 I9、常用的串口相关寄存器:
+ O' D1 M  p& h+ ^0 }, z1.USART_SR状态寄存器
, ^& E6 e6 U" I( J/ ], \& j' w/ `$ Y" o8 K1 b8 O) h% R* m
20190809175826741.png
$ U: d+ s0 v- p! X8 `! Z+ f1 B  H1 G9 e0 \/ j. |; q
2.USART_DR数据寄存器# p% Q  k$ b1 T6 E% W- s

  U1 o# x: o& W" m! G" {
20190809175854511.png
. S4 A* T1 @; Y% a1 E$ l# V0 d, w
3 n) _7 @( e: W  O+ w3.USART_BRR波特率寄存器
5 w: a( {; _) }$ f
5 _* t% _) k1 I( r
20190809180030512.png ) G9 R! x. P2 ^' ~
1 p3 d$ c( C& n0 A
波特率计算方法:1 Z4 d, d% R  X. r% C5 E

. b4 c, y# J: H# |- d% L5 ]2 I. h
20190809180731250.png
5 n4 c/ M9 n5 h/ d; |% E
/ |8 ^' q. j, D6 z$ w  j$ c
20190809180801259.png
) H: D5 w9 W9 R: V  F  f5 v

# {6 s8 n; \2 `! y10、串口配置的一般步骤:
, T4 f" v* v7 t2 V) l/ T; P串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
! {  C+ Q% N3 C" l* {  P串口复位:USART_DeInit(); 这一步不是必须的
" n! X6 t7 y% }4 |% yGPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP4 x2 r; G3 u+ ?( c
串口参数初始化:USART_Init();! @! O5 A. V( T5 l& |
开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)    NVIC_Init();       USART_ITConfig();; S# K$ V* W& e4 s$ B0 x
使能串口:USART_Cmd();+ [2 Y; m6 V; X; ]
编写中断处理函数:USARTx_IRQHandler();
' y) f! H4 @( H1 l6 @串口数据收发: void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据8 Y* A  y  h8 E* x5 [  I/ H
串口传输状态获取: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);) [2 c' k$ E6 y
————————————————, R  E1 Q* i, t0 h! i9 X: w
版权声明:集中注意力619
' y% c$ Y: R5 s2 [1 w6 ^如有侵权请联系删除
7 J7 H, H$ |5 o6 n# ~) x7 r# \2 f% `, `9 V1 J: r/ q
2 m, G8 y% q+ K  P2 ^7 V

, _! Z$ [5 Q+ G4 K- ]! ]
赞 收藏 评论0 发布时间:2023-5-14 17:02

举报

0个回答

所属标签

相似技术帖

官网相关资源

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