起因是RS485通信,需要控制方向脚,在数据发送完成后,将方向切换为接收。问题来了:
最开始的做法是,在DMA发送完成中断里面开启USART的“发送数据完成”中断,然后在USART的“发送数据完成”中断里面将方向切换为接收,测试发现最后两个字节发送不成功。
然后改成这样:DMA发送完成中断里面开启USART的“发送缓冲器空”中断,在“发送缓冲器空”中断再打开“发送数据完成”中断,最后才在“发送数据完成”中断里面切换方向,测试发现最后一个字节发送不成功。
那么,这个“发送数据完成”中断,到底是个什么玩意?RS485方向控制该怎么做?以前用ST的芯片,发送完成中断直接切换方向没问题,换成AT32F415,就差了两个字节发送不成功。 |