- 通信方式
并行传送:一次8位,需要保持各路信号同时到达,距离和速度受限制,成本较高
串行传送:一次1位,距离较远、速率更高,成本较低。
{在单片机的通信中,使用的是串行传送,但是数据寄存器里面的是8位的数据,需要在移位寄存器中将并行转为串行}
- 通信中需解决的问题
问题:要保证接收方和发送方保持同步工作,如何在转成串行传送后区分每个数据位?
解决方案:同步——带时钟;异步——不带时钟,需要接收方恢复时钟。
- 异步串行通信
一般模式:前帧,起始位(低),数据位(8-9位),停止位(高),后帧
起始位的下跳沿,接收方和发送方对时间(???){双方都有内部时钟,那么这个时钟之间对时间是个什么意思???}
停止位可以指定为:1位、2位、0.5位、1.5位
- USAART寄存器的组成
都是32位的SR、DR、BRR、CR1、CR2、CR3、GPTR
分别对应着状态寄存器、数据寄存器、波特率寄存器、3个控制寄存器、守护时间和预分频寄存器。
- 波特率发生器
注意:寄存器BRR里面存放的其实不是波特率的值,而是系统时钟的分频值。
常规的器件:系统时钟频率/(16*想要的波特率)=BRR寄存器中的值。
老师的教学板的波特率是带4位小数的:系统时钟频率/想要的波特率=BRR寄存器中的值。
- 发送器和接收器
- AFIO的用法
具体可见:https://blog.csdn.net/u013082827/article/details/77543394