|
1、处理器与外部设备通信的两种方式: 1.并行通信 -传输原理:数据各个位同时传输。 -优点:速度快。 -缺点:占用引脚资源多。" J% S! y4 |$ g8 |$ R 2.串行通信 -传输原理:数据按位顺序传输。 -优点:占用引脚资源少。 -缺点:速度相对较慢。 2、串行通信按照数据传送方向,分为: 1.单工:数据传输只支持数据在一个方向上传输 。 2.半双工:允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 3.全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。. B3 `. u" \9 N2 B' Q& r# u2 ?
: Y: r1 F& [! ^" X- k9 Z 3、串行通信的通信方式 : 1.同步通信:带时钟同步信号传输,根据时钟信号传输。 -SPI,IIC通信接口7 }. r4 p7 G! F8 w, D0 b 2.异步通信:不带时钟同步信号,需规定波特率来通信。 -UART(通用异步收发器),单总线
4、STM32的串口通信接口 : 1.UART:通用异步收发器% M8 j0 B, ]. |0 U3 k UART异步通信方式特点:( J, Z9 V7 d o0 r 全双工异步通信。 分数波特率发生器系统,提供精确的波特率。-发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位); 可配置的停止位(支持1或者2位停止位);0 F- j$ ]% H. l. W; r2 s* I6 K. D0 i 可配置的使用DMA多缓冲器通信。 单独的发送器和接收器使能位。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 5、UART异步通信方式引脚连接方法: -RXD:数据输入引脚。数据接受。 -TXD:数据发送引脚。数据发送。' |0 {% S8 g4 M ' g ^- d+ Y9 g- s. L" y
3 a2 [9 P; ~( V, U6 w
6、串口通信过程: ! a# Q8 T2 e# B" Q8 n+ L H$ Q
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
! G- j2 h+ k; [/ C( k# x 8、USATR框图: 3 U( `5 Q U3 H8 L& P1 }3 z) C
- u7 t/ |7 n, B2 U$ _9 _- x& v 9、常用的串口相关寄存器: 1.USART_SR状态寄存器$ q. d4 q8 ?) ? & g, J$ f2 B9 K. y' T4 F
- X. e6 ]" p0 C2 I% B) E 2.USART_DR数据寄存器. `* X. v' g5 y0 p- R! u9 y
3.USART_BRR波特率寄存器6 \, Z* M( ?1 ]: F % {3 Y' v& }4 P+ k+ S
波特率计算方法:- d9 v' r W" j
. N9 f# X% w, K
10、串口配置的一般步骤:# a Q) q* S( I; X% C D 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();+ b7 P: Y( J: ]1 G! q 串口复位:USART_DeInit(); 这一步不是必须的 GPIO端口模式设置: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(); 编写中断处理函数:USARTx_IRQHandler(); 串口数据收发: 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); ————————————————; h& R6 S% H- ~( E' {' q7 C- ` 版权声明:集中注意力619 如有侵权请联系删除% y$ t6 G6 n" J7 J& s 6 ?+ C2 _0 s& p) D' [" w |
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之继电器模块
微信公众号
手机版