如题,目前在使用串口空闲中断时发现一个问题,空闲中断只能触发一次,把串口的状态寄存器打印出来看发现IDLE位置高了,但是也没有再次触发中断,以下是程序以及串口打印出来的数据(图一是给串口2发送的数据,让其触发中断),最开始的状态寄存器是192,接收到数据后变成了248触发IDLE中断,在中断服务程序中清除了中断标志位后再次变为192,再次接收数据变成248后却不再进入中断。希望有空能够解答一下,谢谢
希望有空能够解答一下。 谢谢
如题,目前在使用串口空闲中断时发现一个问题,空闲中断只能触发一次,把串口的状态寄存器打印出来看发现IDLE位置高了,但是也没有再次触发中断,以下是程序以及串口打印出来的数据(图一是给串口2发送的数据,让其触发中断),最开始的状态寄存器是192,接收到数据后变成了248触发IDLE中断,在中断服务程序中清除了中断标志位后再次变为192,再次接收数据变成248后却不再进入中断。希望有空能够解答一下,谢谢
希望有空能够解答一下。 谢谢
您好,对应中断函数注意加一下中断声明,参考下图。
谢谢,已成功
还想询问一下加这个 _attribute_((interrupt("WCH-Interrupt-fast")))有什么作用?
在使用freertos中发现加这个也还是会进入hard-fault中 但是加 _attribute_((interrupt()))就正常了,想询问一下这两个的区别是什么?
您好,这两个声明分别对应硬件压栈和软件压栈,关于对此的具体说明,可参考下面链接手册
QingKeV4微处理器手册:https://www.wch.cn/downloads/QingKeV4_Processor_Manual_PDF.html