//按键处理函数 //返回按键值 //0,没有任何按键按下 //1,KEY0按下 //2,KEY1按下 //3,KEY2按下 WK_UP //注意此函数有响应优先级,KEY0>KEY1>KEY2!! u8 key_scan(void) { static u8 key_up=1;//按键按松开标志 jtag_set(JTAG_SWD_DISABLE); if(key_up&&(KEY0==0||KEY1==0||KEY2==1)) { delay_ms(10);//去抖动 key_up=0; if(KEY0==0) { jtag_set(SWD_ENABLE); return 1; } else if(KEY1==0) { jtag_set(SWD_ENABLE); return 2; } else if(KEY2==1) { jtag_set(SWD_ENABLE); return 3; } }else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1; jtag_set(SWD_ENABLE); return 0;// 无按键按下 }
int main(void){ sys_init(); //配置系统时钟72M(包括clock, PLL and Flash configuration) delay_init();//初始化延时 uart1_init(72,9600); uart2_init(36,9600);//时钟为最高时钟的一半 // uart3_init(36,9600);//时钟为最高时钟的一半 led_init(); car_init(); jtag_set(2);//禁止JTAG,释放PB3,PA15 Steering_Init(); uart_printf("ok\r\n"); hwbz_init(); power_init(); while(1){ cmd_handle(); }; return 0; }