找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2705|回复: 4
收起左侧

UART协议分析

[复制链接]
ID:475247 发表于 2020-3-22 11:17 | 显示全部楼层 |阅读模式
00001.jpg

1.起始位
  当没有数据发送时,数据线处于逻辑“1”状态;先发出一个逻辑“0”信号,表示开始传输字符。

2.数据位
  紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。

3.奇偶校验位
  资料为加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

4.停止位
  它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很

可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的

位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

5.空闲位或起始位
  处于逻辑“1”状态,表示当前线路上没有资料传送,进入空闲状态。

  处于逻辑“0”状态,表示开始传送下一数据段。

6.波特率
  表示每秒钟传送的码元符号的个数,是衡量数据传送速率的指标,它用单位时间内载波调制状态改变的次数来表示。

  常用的波特率有:9600、115200……

  时间间隔计算:1秒除以波特率得出的时间,例如,波特率为9600的时间间隔为1s / 9600(波特率) = 104us。


函数如下:
void uart_init(u32 bound)
        {

        USART_InitStructure.USART_BaudRate = bound;//串口波特率
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
        USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //收发模式

       USART_Init(USART1, &USART_InitStructure); //初始化串口1
       USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断
       USART_Cmd(USART1, ENABLE);                    //使能串口1
}


评分

参与人数 1黑币 +8 收起 理由
jinsheng7533967 + 8 赞一个!

查看全部评分

回复

使用道具 举报

ID:714036 发表于 2020-3-23 14:25 | 显示全部楼层
赞一个,谢谢科普
回复

使用道具 举报

ID:714079 发表于 2020-3-23 15:29 | 显示全部楼层
解释相当到位
回复

使用道具 举报

ID:473159 发表于 2020-3-23 15:54 | 显示全部楼层
间单明了,真心不错,顶起来!
回复

使用道具 举报

ID:454000 发表于 2020-3-24 07:51 | 显示全部楼层

赞一个,谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表