[mw_shl_code=c,true]void delay_ms( u32 time ) //72HMZ
{
u32 temp;
SysTick->LOAD = 9*time*1000; /* 时间加载 */
SysTick->VAL = 0X00; /* 清空计数器 */
SysTick->CTRL = 0X01; /* 使能计数器 */
do
{
temp = SysTick->CTRL;
}while( (temp&0X01) && !( temp & (1<<16 )));
SysTick->CTRL = 0X00; /* 关闭计数器 */
SysTick->VAL = 0X00; /* 清空计数器 */
}
void EXTI0_IRQHandler( void )
{
delay_ms(20);
if( (GPIOE->IDR &= 1)==0 )
{
printf("你按下了KEY1
");
while( (GPIOE->IDR &= 1)==0 );
}
}
[/mw_shl_code]
松开按键后 程序在delay_ms函数中死循环?这是为啥 该怎么解决??? 求助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你是怎么测试的?
------------------------------
按下键 然后松开 程序里就这两个东西 别的没啥功能
原子哥,我也遇到了这个问题,但是我的按键是矩阵键盘,不是中断。也会死在delay里面,刚开始死在了delay_ms()里面,然后我直接把delay_ms()删掉,然后又死在了delay_us()这是咋回事?都是在里面的do while 一直循环。
请问你解决了吗?我也出现这样的问题了。求解答
一周热门 更多>