UART串口编程

本文详细介绍了UART串口通信的基础知识,包括波特率、帧格式、奇偶校验和工作流程。讲解了UART如何设置波特率除数因子、传输格式以及硬件控制流。还提供了相关寄存器的配置和C语言实现的UART初始化、发送和接收数据的代码示例。
摘要由CSDN通过智能技术生成
        基础知识:
        1.波特率:每秒传输的二进制位数,bps。
        2.UART用的是标准TTL/CMOS逻辑电平,可以通过MAX3232转换成RS-232逻辑电平。 RxD/TxD数据线以位为最小数据传输单位。
        3.帧:有效传输单位,具有完整数据意义。里面包含:起始位,数据位,校验位,停止位。 一帧数据可以有5-8个数据位,从最低位开始传输,传输前约定好传输的格式和波特率。所以 能达到发送和接受的数据同步。
        4.奇偶校验:所有数据位中包含1的个数。
        5.帧格式: n个停止位+起始位+(低)数据位(高)+奇偶校验位+n个停止位。。。 帧的分割是有起始位来标志的。
        6.UART工作流程:
        发送数据:CPU----》FIFO-------》发送移位寄存器---------》TxD数据线
        CPU将数据通过总线发送到FIFO中,UART将FIFO中的数据复制到发送移位寄存器中。 发送移位寄存器根据传输格式(添加开始位,数据位,校验位,中止位)一位一位的发送到TxD数据线上发射。
        接受数据:RxD数据线--------》接受移位寄存器-----》FIFO----------》CPU
        接受移位把RxD数据线上的数据一位一位接受过来,然后复制到FIFO中,CPU就可以访问到FIFO中数据了。
        7.硬件控制流:这个可以联系到TCP三次握手,当要发送数据时,要等待接受方准备好,并返回个准备好的 信号。当发送方接受到这个信号,才开始发送数据。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值