CH582M的串口中断服务函数要怎么才能触发?

CH582M的串口中断服务函数要怎么才能触发?


使用中断发送数据 ,要怎么才能触发中断服务函数。

/bbs/thread-92172-1.html

使能中断的情况下,先向R8_UART1_THR或者说发送fifo中填充一组数据,这组数据发完后会进uart中断“发送缓存空”的case,参考上面的帖子。


我现在想每发送一个字节就触发一次中断,要怎么处理。





①启用接收中断时,加一个RB_IER_THR_EMPTY以启用发送中断,如下这样写;

UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT | RB_IER_THR_EMPTY);

②在其他地方比如说主函数中主动往R8_UART1_THR中填写一个数据,发送出去后会产生发送缓存区空中断,进UART中断服务函数下的UART_II_THR_EMPTY这个case;

③在这个case中再逐个字节填入R8_UART1_THR,直到判断所有数据都发完就不再填充数据。

发送中断标志在进入中断服务函数switch(UART1_GetITFlag())这里,读IIR寄存器已经清除了。


这个需不需要关闭FIFO


如上使用的话,不用关闭FIFO。


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