|
1、处理器与外部设备通信的两种方式:, b8 _2 i4 m7 m. q& x; B 1.并行通信 -传输原理:数据各个位同时传输。 -优点:速度快。 -缺点:占用引脚资源多。 2.串行通信 -传输原理:数据按位顺序传输。 -优点:占用引脚资源少。 -缺点:速度相对较慢。 2、串行通信按照数据传送方向,分为: 1.单工:数据传输只支持数据在一个方向上传输 。0 [# j; W- Y* W 2.半双工:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;: l+ B+ g4 \" m! k 3.全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。. _, l4 C. V$ x4 \ , _, D+ t- M, Q) r0 r0 s
3、串行通信的通信方式 :+ Q ?& N. Q% U, o 1.同步通信:带时钟同步信号传输,根据时钟信号传输。 -SPI,IIC通信接口5 ?* |" O# Z% ]3 B 2.异步通信:不带时钟同步信号,需规定波特率来通信。 -UART(通用异步收发器),单总线 + d7 k; }0 I) ?9 z& m/ n7 x9 i
4、STM32的串口通信接口 : 1.UART:通用异步收发器 UART异步通信方式特点:$ K3 r% s, `. t' B/ E, S 全双工异步通信。 分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位);% O/ |; i6 f% x( M 可配置的停止位(支持1或者2位停止位); 可配置的使用DMA多缓冲器通信。9 p0 q o0 N! \ 单独的发送器和接收器使能位。 检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志 多个带标志的中断源。+ G& b; k; j# a 触发中断。 其他:校验控制,四个错误检测标志。 2.USART:通用同步异步收发器0 q1 z# [: @( @5 v 5、UART异步通信方式引脚连接方法: -RXD:数据输入引脚。数据接受。 -TXD:数据发送引脚。数据发送。$ f/ h1 v% {0 Q- K. K4 ^ 0 A& p O! q' n$ \, P
8 t9 C5 ^$ O5 @, d5 Z
8 E4 C' \. Z0 F5 I& m6 G
6 w9 m$ p& k$ f5 L$ U 6、串口通信过程:
7、STM32串口异步通信需要定义的参数:$ D( Y3 j$ z3 V* O' K/ g! k9 W 起始位 数据位(8位或者9位) 奇偶校验位(第9位) 停止位(1,15,2位) 波特率设置
8、USATR框图: 8 q6 J* P2 k, p/ t ' i! } S+ G7 t
; [8 `( o+ ?! @; a( D" ?6 O 9、常用的串口相关寄存器: 1.USART_SR状态寄存器3 S7 d% r, ?& q6 z, ^ # Q# I+ l' b/ c0 E
2.USART_DR数据寄存器. g6 Q! }4 V' @) I y ) M5 l% k/ H' ~8 ]7 M4 u A- A
! i# R9 p3 Y. N6 | 3.USART_BRR波特率寄存器$ l0 v) R0 }$ M7 N- q 1 p1 i7 Y9 [8 M. L
, I+ ]: x; G0 f X 波特率计算方法:
" ~ k# }! J3 o* T
r3 z- y. p2 \" o" \! |- ~ 10、串口配置的一般步骤: 串口时钟使能,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 串口参数初始化:USART_Init(); 开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) NVIC_Init(); USART_ITConfig();. z+ B4 h4 |2 S" o: R' @ 使能串口:USART_Cmd();) H) N) J2 w# k/ \ 编写中断处理函数:USARTx_IRQHandler(); 串口数据收发: void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据 串口传输状态获取: 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 ———————————————— 版权声明:集中注意力619, X; `6 J9 j* \* T 如有侵权请联系删除 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版