根據我找到的資料來看,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); //清除中斷標志位
}
|