初级会员

- 积分
- 72
- 金钱
- 72
- 注册时间
- 2013-9-22
- 在线时间
- 0 小时
|

楼主 |
发表于 2013-9-22 16:22:17
|
显示全部楼层
回复【2楼】aleda303:
---------------------------------
我把定时器中断里面的代码精简成只有这样一句了:
stateGyro = HALGYRO_IIC_Read(L3GD20_Add, STATUS_REG);
这个时间应该够短吧?
串口中断的代码其实也很短,是这样的:
RcvedChar = FM3_MFS0_UART->RDR;
gUartRxBuf[gUartRXBufEnd++] = RcvedChar;//不分析数据,直接放到全局buffer
if(gUartRXBufEnd >= UARTRXBUFSIZE){
gUartRXBufEnd = 0;
}
这个时间也够短吧?
所以应该不是你说的这样。我现在好像找到了解决办法:把串口中断的优先级设定为高于定时器优先级。改了以后就没有数据丢失了。我一直以为,中断向量表里面的顺序决定了缺省的优先级顺序,其实不然,这个是需要人为设定的,不知道我理解的对不对? |
|