本帖最后由 qzj5 于 2020-5-13 17:13 编辑
本人小白一枚,最近在做stm32外部中断,使用的芯片是stm32f103。在变量使用上出现问题。具体情况如下:在使用外部中断对方波信号下降沿计数时,将计数变量类型设置为u(u8 i),在串口输出数据时,发现在i是0-9时,正常输出,但是当i>9时,程序卡掉了,没有输出结果。也试过变量类型 u16、int但是结果跟u8相同。 我用的是proteus仿真。下面附上代码及仿真结果图:各位路过的大佬,帮看一下好吗?
代码如下:
void EXTI2_IRQHandler(void) //外部中断服务函数
{
unsigned char display[80] ;
u8 jishu = 0;
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)==0)
{
jishu++;
// i++;
printf("jishu: %d\r\n",jishu);
}
else
{
a++;
}
EXTI_ClearITPendingBit(EXTI_Line2); //清除中断标志位
}
|