DMA串口发送状态问题 | 明白了
现在使用DMA通过串口发送数据,用AiCube生成代码,请问DMA向串口发送数据中,是否可以再次发起DMA操作?是否只能通过UR1T_DMA状态寄存器(DMA_UR1T_STA)读取状态?
对Ai-Cube生成的代码测试中,通过串口DMA发送UR1T_DMA状态寄存器内容,此状态寄存器始终为0(DMA中断中已经对UR1TIF在中断中置0),是否是由于发送数据量太少导致的?
请问如何在发送前获取发送DMA的运行状态?TXOVW标志位在AiCube中没有体现,是否不需要观察这个标志位的状态?
建议上传完整工程,相关寄存器的使用可以参考传统库函数:
DMA只有传输完设置长度的数据内容后才会产生完成中断标志位,产生完成中断后进入停止状态,就可以触发下一次的传输。
只要程序控制好传输流程,不要在DMA传输过程中写SBUF寄存器,就不会产生TXOVW标志。 乘风飞扬 发表于 2025-7-22 09:01
DMA只有传输完设置长度的数据内容后才会产生完成中断标志位,产生完成中断后进入停止状态,就可以触发下一 ...
学习了!感谢回复! ercircle 发表于 2025-7-22 08:45
建议上传完整工程,相关寄存器的使用可以参考传统库函数:
明白了,其实中断也不是必须的,检测UR1TIF就可以判定下次是否发送了
页:
[1]