STM32系统学习——USART(同步异步收发器)
@[STM32系统学习——USART(同步异步收发器)] 1)通信方式 1.1)并行通信 传输原理:数据各个位同时传输。优点:速度快。缺点:占用引脚资源多。 1.2)串行通信 传输原理:数据按位顺序传输。优点:占用引脚资源少。缺点:速度相对较慢。 2) 数据发送方式 2.1)单工 即数据只能单方向传输,不能反向传输。 2.2)半双工 数据可以双向传输,但是同一时刻只允许数据在某一个方向上传输。 2.3)全双工 数据可以同时双向传输,但是它要求通信双方都有独立的发送和接收设备。 3) 通信方式引脚连接 •RXD:数据输入引脚。数据接受。 •TXD:数据发送引脚。 •数据发送。 •如果要进行单片机与单片机之间通信的话,需要将一块单片机的RXD与另一块单片机的TXD相连,可能还要加要给 RS232转换器 来设置电平。 4) UART异步通信方式特点 •全双工异步通信。 •分数波特率发生器系统,提供精确的波特率。 •发送和接受共用的可编程波特率,最高可达4.5Mbits/s •可编程的数据字长度(8位或者9位); •可配置的停止位(支持1或者2位停止位); •可配置的使用DMA多缓冲器通信。 •单独的发送器和接收器使能位。 •检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志 •多个带标志的中断源。触发中断。 •其他:校验控制,四个错误检测标志。 5)参数定义 ①起始位 ②数据位(8位或者9位) 9位是带奇偶校验位 ③奇偶校验位(第9位)奇检验就是保证8位数据位中1的个数为基数个,如果1是基数个则检验位就为0,反之为1;偶检验就是保证8位数据位中1的个数为偶数个,如果1是偶数个则检验位就为0,反之为1; ④停止位(1,15,2位)⑤波特率设置 6)串口配置 6.1)串口时钟使能,GPIO时钟使能 6.2)串口复位 6.3)GPIO端口模式设置 6.4)串口参数初始化 6.5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) 6.6)使能串口 6.7)编写中断处理函数 7)串口初始化 8)发送接收函数 9)串口状态 RXNE(读数据寄存器非空),当该位被置 1 的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取 USART_DR,通过读 USART_DR 可以将该位清零,也可以向该位写 0,直接清除。 TC(发送完成),当该位被置位的时候,表示 USART_DR 内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式: 1)读 USART_SR,写USART_DR。 2)直接向该位写 0。
