【No6~STM32】串口通信

(1)关于RS-232

在串口通信中RS-232 电平标准的信号不能直接
被控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的
“TTL 校准”的电平信号,才能实现通讯

控制器一般使用 TTL 电平标准,所以常常会使用 MA3232 芯片对 TTL 及 RS-232
电平的信号进行互相转换。

TTL标准:逻辑1:2.4V到5V

                 逻辑0:0到0.5V

RS-232 :逻辑1:-15V到-3V

                 逻辑0:+3v~+15v

在旧式的台式计算机中一般会有 RS-232 标准的 COM 口(也称 DB9 接口),接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头.

接收数据 RXD DTE-DCE Receive Data,数据接收信号,即输入。

发送数据 TXD DTE-DCE Transmit Data,数据发送信号,即输出。两个
设备之间的 TXD 与 RXD 应交叉相连。

数据设备
(DCE) 就绪DSR DT-DCE Data Set Ready,数据发送就绪,用于 DCE 告知对方本机是否处于待命状态

公头5GND对应母头5GND

(2)串口异步和同步区别

stm32中将sclk(时钟)关闭就为异步通信,开启时为同步传输。异步通信电平间隔不固定,同步固定。

(3)波特率

以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,常见的波特率为
4800、9600、115200 等

(4)起始和停止信号
串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑 0 的数据位表示。

数据包的停止信号可由 0.5、1、1.5 或 2 个逻辑 1 的数据位表示,只要双方约定一致即可。

(5)有效数据

在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为 5、6、7 或 8 位长。
 

(6)数据校验

在有效数据之后,有一个可选的数据校验位。校验方法有奇校验(odd)、偶校验(even)、0 校验(space)、1 校验(mark)以及无校验(noparity)。

奇校验要求有效数据和校验位中“1”的个数为奇数。

注:0 校验是不管有效数据中的内容是什么,校验位总为“0”,1 校验是校验位总为
“1”

在无校验的情况下,数据包中不包含校验位

(7)USART

(1)USART 满足外部设备对工业标准 NRZ 异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率,使得它的应用更加广泛。USART 支持同步单向通信和半双工单线通信;USART 支持使用 DMA,可实现高速数据通信。

(2)应用:

 USART 在 STM32 应用最多莫过于“打印”程序信息,一般在硬件设计时都会预留一
个 USART 通信接口连接电脑,用于在调试程序是可以把一些调试信息“打印”在电脑端
的串口调试助手工具上,从而了解程序运行是否正确、指出运行出错位置等等

ps:STM32 的 USART 输出的是 TTL 电平信号,若需要 RS-232 标准的信号可使用
MAX3232 芯片进行转换。

(3)相关寄存器

TX:发送数据输出引脚。
RX:接收数据输入引脚。

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

数据寄存器:USART 数据寄存器(USART_DR):只有低 9 位有效,并且第 9 位数据是否有效要取决于
   USART 控制寄存器 1(USART_CR1)的 M 位设置ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值