根据我找到的资料来看,u16是两个字节十六位的short int。它最大应该可以是32767.但是在我的程序里面它到9之后就不能输出了。因为我用的proteus仿真,keil5与proteus的联调,没有做好。也没有实际的电路板去调试。所以希望各位大佬能看一下我到底是哪里出错了,给一些建议。谢谢。下附代码及仿真结果。
void EXTI2_IRQHandler(void) //外部中断服务函数
{
u16 i = 0;
unsigned char display[80] ;
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)==0)//PB2是否为下降沿
{
i++; }
else
{
a++;
}
printf("i: %d\r\n",i);
EXTI_ClearITPendingBit(EXTI_Line2); //清除中断标志位
}
|