STM32学习(六)USART串口协议

一、通信接口

1.通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统。

2.通信协议:制定通信的规则,通信双方按照协议规则进行数据收发。

STMF103C8T6支持以下通信协议

 如果需要蓝牙无线遥控功能,陀螺仪加速度计测量姿态的功能,STM32没有,只能通过外挂芯片完成,这时就需要将两个设备用通信线连接,完成数据交换,从而实现读取外挂模块数据和控制外挂模块的目的。

图中 TX(或TXD)为数据发送脚,RX(或RXD)为数据接收脚,SCL,SCLK为时钟,SDA是数据。MOSI是主机输出数据脚,MISO是主机输入数据脚。CS是片选,用于指定通信的对象。CAN_H和CAN_L是差分数据脚,用两个引脚表示一个差分数据。DP(D+)和DM(D-)也是一对差分数据脚。

二、串口通信

1.串口是一种应用十分广泛的通讯接口,串口成本低容易使用,通信线路简单、可实现两个设备的互相通信。

2.单片机的串口可以使单片机和单片机、单片机和电脑、单片机和各种各样的模块互相通信、极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。

三、硬件电路

1.简单双向串口通信有两根通信线(发送端TX和接收端RX)

2.TX和RX要交叉连接

3.当只需要单向的数据传输时,可只接一根通信线

3.当电平标准不一致时,需要加电平转换芯片

注:电平标准时数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种。

a.TTL电平:+3.3v或+5v表示1,0v表示0.

b.RS232电平:-3~-5v表示1,+3~+5v表示0

c.RS485电平:两线压差+2~+6v表示1,-2~-6v表示0(差分信号,抗干扰能力强)

 四、串口参数及时序

波特率:串口通信的速率

起始位:标志一个数据帧的开始,固定为低电平

数据位:数据帧的有效荷载,1为高电平,0为低电平,低位先行

校验位;用于数据验证,根据数据位计算得来(无校验、奇校验、偶校验、CRC校验)

停止位:用于数据帧间隔,固定为高电平

 五、USART简介

USAR:通用同步/异步收发器

USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,并存放在寄存器里

USART自带波特率发生器,最高达4.5Mbits/s,相当于分频器

可配置的数据位长度(8或9),停止位长度(0.5或1或1.5或2),数据位长度如上图所示,如果需要校验位就设置9,不需要就设置8.停止位决定了波的间隔,一般用1。

可以选择无校验、奇校验和偶校验三种

STM32的USART资源: USART1 USART2 USART3

六、USART框图

功能引脚

TX: 发送数据输出引脚。

RX: 接收数据输入引脚。

SW_RX: 数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引脚。

nRTS: 请求以发送(Request To Send),n表示低电平有效。如果使能RTS流控制,当USART接收器准备好接收新数据时就会将nRTS变成低电平; 当接收寄存器已满时,nRTS将被设置为高电平。该引脚只适用于硬件流控制。

nCTS: 清除以发送(Clear To Send),n表示低电平有效。如果使能CTS流控制,发送器在发送下一帧数据之前会检测nCTS引脚, 如果为低电平,表示可以发送数据,如果为高电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。

SCLK: 发送器时钟输出引脚。这个引脚仅适用于同步模式。

STM32F103VET6系统控制器有三个USART和两个UART,其中USART1和时钟来源于APB2总线时钟,其最大频率为72MHz, 其他四个的时钟来源于APB1总线时钟,其最大频率为36MHz。UART只是异步传输功能,所以没有SCLK、nCTS和nRTS功能引脚。

控制器

USART有专门控制发送的发送器、控制接收的接收器,还有唤醒单元、中断控制等等。 使用USART之前需要向USART_CR1寄存器的UE位置1使能USART,UE位用来开启供给给串口的时钟。

发送或者接收数据字长可选8位或9位。

发送器

一个字符帧发送需要三个部分:起始位+数据帧+停止位。起始位是一个位周期的低电平,位周期就是每一位占用的时间; 数据帧就是我们要发送的8位或9位数据,数据是从最低位开始传输的;停止位是一定时间周期的高电平。

接收器

如果将USART_CR1寄存器的RE位置1,使能USART接收,使得接收器在RX线开始搜索起始位。 在确定到起始位后就根据RX线电平状态把数据存放在接收移位寄存器内。接收完成后就把接收移位寄存器数据移到RDR内, 并把USART_SR寄存器的RXNE位置1,同时如果USART_CR2寄存器的RXNEIE置1的话可以产生中断。

RE

接收使能

RXNE

读数据寄存器非空

RXNEIE

接收完成中断使能

  • 53
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值