#CH579M

串口发送中断,串口接收到数据,开启发送中断,第一次可以进入中断发送数据;再接收数据,开启数据发送中断,进入不了?这个问题怎么解决

您好,看描述不太清晰,能否提供更多信息。

“开启发送中断”是指使能发送中断吗,这样的话使能的时候会触发一次发送中断(从0变1触发),再次使能是不会触发的。

使能发送中断之后,先手动向R8_UART1_THR或者说发送fifo中填充一组数据,这组数据发完后会由于“发送保持寄存器空”自动触发,进uart中断“发送缓存空”的case,在这个case中继续填充数据即可。

download.png


串口收到数据,开启中断发送,数据可以正常发送,数据发送完关闭发送中断;串口再接收到数据,开启发送中断,不可以发送数据。


您好,通过您的描述,不太好定位问题。要不您贴一段代码,或者将工程发至邮箱zhaiyw@wch.cn。

“发送中断”是在数据发送完后被动触发的,不必手动开关,初始化UART时开着就行。触发之后,在中断服务函数中往THR填充数据。要注意PRINT打印函数使用的也是UART,也会触发发送中断。

可以参考下方帖子。

/bbs/thread-94048-1.html


只有登录才能回复,可以选择微信账号登录