denvice 发表于 2014-10-5 10:03 
GD的指令执行起来会比ST的要快,经常有人遇到速度的问题,所以我怀疑是你清除中断标志位的写法配合GD的芯片 ...
还是不明白, 这个快慢有什么关系? 即使出现你说的, 也不会出现中断加倍的可能啊. 我就是一进入就清除中断标志的. 中断代码如下
- void EXTI0_IRQHandler(void)
- {
- EXTI_ClearITPendingBit(WG2_EXITLINE);
- if (WG2_TRI_IS_RISING()) {
- if(WG2_finish == 0) {
- WG2_time_cnt = WG_TIMEOUT;
- WG2_cnt ++;
- WG2_data = WG2_data << 1;
- if(WG2_IS_DATA1()) {
- WG2_data |= (u32)1;
- }
- }
- }
- }
中断里面代码非常简单, 除了检测引脚状态, 就是赋值.
最外面一层的if本来是没有必要的, 为了修补这个问题加上的.
|