2019-12-12 18:17发布
love_ourdev 发表于 2019-3-18 13:01 ST官方都有APPNOTE指导的(对于UART没有RS485功能的单片机型号而言): 1、启动DMA前,先关闭UART发送完 ...
最多设置5个标签!
我在实际测试过程中有这个现象,初始化时并没有开启发送完成中断,在dma传输完成中断里开启发送完成中断,在串口发送完成中断由发送转接收,然后清除发送完成标志(SR &= 0XFFBF),然后关闭发送完成中断。这个流程会发现发送出去的字节数会比设定的少两个字节。
分析,按理论上说在开启发送完成中断时,串口数据寄存器和移位寄存器中都还有数据,也就是在如果在串口发送完成中断里如果不关闭发送完成中断,会产生两次中断。但在实际测试过程中发现并没有产生两次中断,而且如果发送完成中断函数只添加发转收,却能正确传输所有数据,并且再下次发起dma传输时也并不会发送完一个字节产生一次发送完成中断,没搞太明白,请帮忙想想,谢谢。
一周热门 更多>