问题:由于要使用的串口通信模块要用到中断来控制接收数据,手册里关于中断也没有什么详细的描述,不太清楚怎么使用这个中断。在scifa库中我找到了一个函数R_SCIFA_GetRXIState(0),这个函数可以检测rxd是否收到中断。我想在我的程序里这样用if(R_SCIFA_GetRXIState(0)==SCIFA_INTERRUPTING){自己的写的中断函数;},当rxd收到中断后执行我自己写的中断函数。请问这种用法会与驱动自带的中断函数RXI_handler()冲突吗?
回答:如果写的话需要重写RXI_handler里面的内容,而且还要看一下怎么从read函数里取参数,比较麻烦,需要读懂程序,建议使用用操作系统,然后建一个任务专职用于读取数据,调用read,然后会在任务里等待,等待过程中会切换到别的任务,read返回后就可以处理数据,这个任务就可以看成一个中断函数,但是实时性稍微差一点。