STM32的数据发送有两个中断标志,一个是发送数据寄存器空标志,一个是发送完毕标志。两个标志都可以引起中断.
要以中断的方式发送一个数据包,流程是这样的:
1.设置RS485的方向为发送,使能发送寄存器空中断,使能完毕进入串口中断。
2.串口中断里读取串口状态,并填充一个数据到发送数据寄存器,硬件自动清除发送数据寄存器空标志,串口数据发送开始。
3.串口发送完一个数据,发送数据寄存器变空,再进入中断,继续填充下一个数据,直到最后一个数据填充完, 使能串口
发送完毕中断。
4.最后一个数据发送完毕,再次进入中断, 清除发送数据寄存器空标志,清除发送完毕中断标志,清除这两个中断标志
的使能位,设置RS485的方向为接收.
注: 如果最后一个数据放入数据发送寄存器,就立刻设置RS485的方向为接收,对方将会丢失一个数据。发送完毕中断和
51单片机的TI标志功能是一样的。唯有发送寄存器空标志是51单片机所没有的,使用这个标志可保证发送数据波形的连续性,
|