本帖最后由 gdszzyq 于 2015-5-11 23:24 编辑
怎么想用STM32就那么难啊,以下这些语句在51哪里绝对没问题的,但始终不明白在这里就是不行,始终卡在这句while(test<2000);不退出。真不好意思再问了,实在找不出原因。
u16 test;
int main(void)
{
SystemInit ();
LED_Init();
TIM6_Int_Init(10,7200);//10Khz的计数频率,定时1毫秒
uart_init(9600);
while (1)
{
test=0; // 一直没执行 ....
LED1=!LED1; // 只执行一次就再没执行
while(test<2000); 为什么test>=2000还没跳出来?
}
}
void TIM6_IRQHandler(void) //TIM6中断
{
if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源
{
TIM_ClearITPendingBit(TIM6, TIM_IT_Update ); //清除TIMx的中断待处理位:TIM 中断源
test++;
if(test>8000)LED0=0; //居然能点亮,说明卡在 while(test<2000);这里
}
}
|