CH582M的串口中断服务函数要怎么才能触发?
使用中断发送数据 ,要怎么才能触发中断服务函数。
CH582M的串口中断服务函数要怎么才能触发?
使用中断发送数据 ,要怎么才能触发中断服务函数。
https://www.wch.cn/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。