为什么串口发送一串数据时需要延时?
注:这里使用标志位判断发送完成更加稳妥,只是使用延时也可以,今天来讲讲为什么要使用延时,直接循环发送数据不行吗?
系统频率:96MHz
波特率:9600
原因:串口调用USART_SendData时,进行一下的操作
1.软件写入数据到发送寄存器
2.移位寄存器通过硬件接收发送寄存器的值
3.移位寄存器发送数据
2步骤因为是硬件处理,速度很快,就几个机械周期,故delay_us(10)就足够了,之后的流程就是等待移位寄存器空时,发送寄存器自动补上数据,当发送到最后一个字节时,因为一个字节发送需要1.043ms,为了确保最后一个字节发送成功,所以使用dela_us(1043).