STM32F0 discovery开发板 EXTI和SysTick问题
STMCU
4543 人阅读
|
2 人回复
|
2013-09-24
TA的每日心情 | 奋斗 2014-5-8 09:56 |
|---|
签到天数: 12 天 连续签到: 1 天 [LV.3]偶尔看看II
童生
- 积分
- 106
|
纯粹的新手,学习F0。基本照抄的官方EXTI例程,我想在中断处理函数中加上让LED3和LED4亮一会再灭掉,可是执行到亮了以后延时600毫秒时,LED怎么也不灭了。这个Delay_ms用到了SysTick,自己写一个空循环的延时程序就可以正常执行。主程序中调用Delay_ms也正常,这会是什么原因造成的?请高手指教。
void EXTI0_1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
/* Turn on LED3 and LED4 during 1s each time User button is pressed */
GPIO_WriteBit(LED3_GPIO_PORT, LED3_PIN | LED4_PIN, Bit_SET);
/* wait for 600ms */
Delay_ms(600);
/* Turn off LED3 and LED4 after 1s each time User button is pressed */
GPIO_WriteBit(LED4_GPIO_PORT, LED3_PIN | LED4_PIN, Bit_RESET);
/* BlinkMode: 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6, then re-cycle */
BlinkMode++;
if(BlinkMode == 7)
{
BlinkMode = 0;
}
/* Clear the EXTI line 0 pending bit */
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
|
|
|
|
|
|
|
|
|
TA的每日心情 | 奋斗 2016-6-12 21:59 |
|---|
签到天数: 647 天 连续签到: 1 天 [LV.9]以坛为家II
翰林
- 积分
- 21099
     

|
沙发
QQ哥
发表于 2013-9-24 15:23:12
|
只看该作者
|
我就是QQ哥,QQ哥就是我! 
https://www.cirmall.com/bbs/?fromuser=QQ%E5%93%A5
|
|
|
|
|
|
TA的每日心情 | 奋斗 2014-5-8 09:56 |
|---|
签到天数: 12 天 连续签到: 1 天 [LV.3]偶尔看看II
童生
- 积分
- 106
|
板凳
fdcjjrxl
发表于 2013-9-24 15:42:31
|
只看该作者
按开发板上的user键产生中断了,但delay_ms函数要用到的SysTick中断始终没发生,600不会减少为599,导致后面的灭灯也不执行。
是不是涉及到中断优先级的设置问题? |
|
|
|
|
|
|
|
|