在线时间2 小时
UID176499
ST金币0
蝴蝶豆0
注册时间2008-4-30
初级会员
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2011-10-9 15:42:22
|
显示全部楼层
a0a.1 0b0c
回复:在线急等,中断里操作IO口跟主循环里操作差异
回复第 2 楼 于2011-10-09 06:43:45发表:
发生这样的问题可能是由于中断标志位未及时清楚,而导致循环进入中断。建议进入中断以后,先清除标志位。还是建议使用SPI模块来接收数据。SPI也有中断接收功能。
void EXTI0_IRQHandler(void)
{
//__DINT();
if(EXTI_GetITStatus(EXTI_Line0) == SET)
{ //RF接收外部中断
EXTI_ClearITPendingBit(EXTI_Line0); // 清除中断
//RFFull=1;
Rx_cc1100(); //读RF数据
}
//__EINT();
}
中断进来后就清除了,板子是通过RF数据来控制几个继电器,继电器(无源)不带负载启控不会复位,带负载时就复位,继电器吸合时用示波器看RF中断脚来了一长串方波。正常是收到一帧产生一个、我个人感觉是在中断里操作IO口跟主循环里操作有差异。还有可能就是模拟SPI时序在两个地方不同。 |
|