diff --git a/projects/blezongkong/mdk/zhongkong.uvoptx b/projects/blezongkong/mdk/zhongkong.uvoptx index f23e271..6ae0099 100644 --- a/projects/blezongkong/mdk/zhongkong.uvoptx +++ b/projects/blezongkong/mdk/zhongkong.uvoptx @@ -22,7 +22,7 @@ - uartTest + OTA 0x4 ARM-ADS @@ -30,8 +30,8 @@ 1 1 - 0 - 1 + 1 + 0 0 @@ -88,8 +88,8 @@ 1 1 1 - 1 - 1 + 0 + 0 1 1 1 @@ -117,106 +117,25 @@ Segger\JL2CM3.dll - - 0 - UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) - 0 JL2CM3 - -U20090928 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO11 -FD20003000 -FC5000 -FN1 -FF0B6x_256kB_PY_D.FLM -FS018000000 -FL040000 -FP0($$Device:B6x$.\Flash\B6x_256kB_PY_D.FLM) - - - 0 - ARMRTXEVENTFLAGS - -L70 -Z18 -C0 -M0 -T1 - - - 0 - DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0) - - - 0 - ARMDBGFLAGS - + -U20090928 -O78 -S1 -ZTIFSpeedSel10000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8008 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO27 -FD20003000 -FC5000 -FN1 -FF0B6x_256kB_PY_D.FLM -FS018000000 -FL040000 -FP0($$Device:B6x$.\Flash\B6x_256kB_PY_D.FLM) - - - 0 - 0 - 0 - 1 -
402735504
- 0 - 0 - 0 - 0 - 0 - 1 - - - 0x18014190 -
- - 1 - 0 - 0 - 1 -
402735500
- 0 - 0 - 0 - 0 - 0 - 1 - - - 0x1801418C -
- - 2 - 0 - 0 - 1 -
402735502
- 0 - 0 - 0 - 0 - 0 - 1 - - - 0x1801418E -
-
- - - 0 - 1 - gBleSleep - - - 1 - 1 - DMA_RX_BUFF - - + 0 0 - 1 - 1 + 0 + 0 0 0 0 0 - 1 + 0 0 0 0 diff --git a/projects/blezongkong/src/app_Time_Event.c b/projects/blezongkong/src/app_Time_Event.c index a269a52..90d098f 100644 --- a/projects/blezongkong/src/app_Time_Event.c +++ b/projects/blezongkong/src/app_Time_Event.c @@ -25,7 +25,7 @@ void Event_Handle(uint16_t Event_List ,bool isOn,void *Parameter){ (void)Parameter; switch(Event_List){ case Buzzer_Event: - Set_Status(IO_TTL_TX,isOn); + Set_Status(OUT_BUZZER,isOn); break; case Pmode_Timeout_Event: if(!isOn){ diff --git a/projects/blezongkong/src/app_control_out.c b/projects/blezongkong/src/app_control_out.c index 1051b7e..a57c321 100644 --- a/projects/blezongkong/src/app_control_out.c +++ b/projects/blezongkong/src/app_control_out.c @@ -25,31 +25,18 @@ uint16_t ACC_Dmax ; bool app_control_en[PA_MAX]={ [OUT_12V_Control] =OE_HIGH, // 12V电源控制输出 /H:12V输出 [OUT_Door_lock] =OE_HIGH, // 开锁 /H:开锁(同) -[IN_01] =OE_LOW, // 自定义输入 -[IN_GPS] =OE_HIGH, // GPS输入0 /H:低使能/边沿触发 -[IO_MANAGER_MODE] =OE_LOW, // 管理员模式 /边沿触发 +[IO_MANAGER_MODE] =OE_LOW, // 管理员模式 /低电平触发 [IO_BACK] =OE_LOW, // 倒车 /H:前进/L:后退 +[IO_AUTO_BRAKE] =OE_HIGH, // 自动刹车 /H:高使能 [IO_BRAKE] =OE_LOW, // 制动 /L:低使能 [IO_TTL_TX] =OE_LOW, // 串口发送 [IO_TTL_RX] =OE_LOW, // 串口接收 -}; +[OUT_BUZZER] =OE_HIGH, // 蜂鸣器输出 /H:蜂鸣器响 +[IO_INTERACTION] =OE_LOW, // 交互信号输入 (人体感应器) /L:低电平触发 +}; sys_sta_t sys_sta; -// ={ -// .Pmode = 0, -// .Smode = 0, -// .O_12V = 0, -// .O_lock = 0, -// .I_01 = 0, -// .I_brake = 0, -// .I_back = 0, -// .IO_TX = 0, -// .IO_RX = 0, -// .A_brake = 0, -// .A_Speed_Cut = 0, -// .Reserve = 0, -// }; // 油门控制输入初始化/PA08/CH3 // 电池电压检测/充电检测/PA04/CH7 @@ -60,7 +47,7 @@ static void acc_in_bat_in_sadc_init(void) // ADC iom_ctrl(PA08, IOM_ANALOG);//ACC//AIN7//油门 - iom_ctrl(PA02, IOM_ANALOG);//ACC_FEEDBACK//AIN2//油门反馈 + // iom_ctrl(PA02, IOM_ANALOG);//ACC_FEEDBACK//AIN2//油门反馈 iom_ctrl(PA04, IOM_ANALOG);//BAT//AIN3//电池电量 // sadc init @@ -146,44 +133,42 @@ void set_out_acc_percent(uint8_t percent){ //中控控制IO初始化 void app_control_init(void){ - // out + // IO init gpio_dir_output(OUT_12V_Control,OE_LOW);// 12V电源控制输出 /H:12V输出 + gpio_dir_input(OUT_12V_Control,IE_UP); gpio_dir_output(OUT_Door_lock,OE_LOW); // 电门锁 /H:开锁 - gpio_dir_output(IO_MANAGER_MODE,OE_LOW);// 管理员模式 /边沿触发 - gpio_dir_output(IO_BACK,OE_HIGH); // 倒车 /H:前进/L:后退 - gpio_dir_output(IO_BRAKE,OE_LOW); // 制动 /L:低使能 + gpio_dir_input(OUT_Door_lock,IE_UP); - gpio_dir_output(IO_TTL_TX,OE_HIGH); // 串口发送 - gpio_dir_output(IO_TTL_RX,OE_LOW); // 串口接收 - //in - // gpio_dir_input(OUT_12V_Control,IE_DOWN);// 12V电源控制输出 /H:12V输出 - gpio_dir_input(OUT_Door_lock,IE_DOWN); // 电门锁 /H:开锁 - gpio_dir_input(IO_MANAGER_MODE,IE_DOWN);// 管理员模式 /边沿触发 - gpio_dir_input(IO_BACK,IE_DOWN); // 倒车 /H:前进/L:后退 - gpio_dir_input(IO_BRAKE,IE_DOWN); // 制动 /L:低使能 + gpio_dir_output(IO_MANAGER_MODE,OE_HIGH);// 管理员模式 /边沿触发 + gpio_dir_input(IO_MANAGER_MODE,IE_UP); - gpio_dir_input(IO_TTL_TX,IE_DOWN); // 串口发送 - gpio_dir_input(IO_TTL_RX,IE_DOWN); // 串口接收 + gpio_dir_output(IO_BACK,OE_HIGH);// 倒车 /H:前进/L:后退 + gpio_dir_input(IO_BACK,IE_UP); + + gpio_dir_output(IO_AUTO_BRAKE,OE_HIGH); // 自动刹车 /H:高使能 + gpio_dir_input(IO_AUTO_BRAKE,IE_UP); + gpio_dir_output(IO_BRAKE,OE_LOW); // 制动 /L:低使能 + gpio_dir_input(IO_BRAKE,IE_UP); + + gpio_dir_input(IO_TTL_TX,IE_UP); // 串口发送 + gpio_dir_input(IO_TTL_RX,IE_UP); // 串口接收 + + gpio_dir_output(OUT_BUZZER,OE_LOW); // 蜂鸣器输出 + + gpio_dir_output(IO_INTERACTION,OE_HIGH); + gpio_dir_input(IO_INTERACTION,IE_UP); // 交互信号输入 (人体感应器) //默认都失能 Set_Status(OUT_12V_Control,0); Set_Status(OUT_Door_lock,0); - Set_Status(IO_MANAGER_MODE,0); - Set_Status(IO_BACK,0); //失能倒车 + Set_Status(IO_AUTO_BRAKE,0); Set_Status(IO_BRAKE,0); - - Set_Status(IO_TTL_TX,0); - Set_Status(IO_TTL_RX,0); - - // in - gpio_dir_input(IN_01,IE_UP); // 自定义输入 - gpio_dir_input(IN_GPS,IE_UP); // GPS输入0 /边沿触发 - + Set_Status(OUT_BUZZER,0); // // EXTI config // exti_init(EXTI_DBC(15, 4)); - // exti_set(EXTI_FTS, EXTI_SRC(IN_GPS) | EXTI_SRC(IO_BACK) | EXTI_SRC(IO_BRAKE) | EXTI_SRC(IO_MANAGER_MODE)); // falling - // exti_set(EXTI_DBE, EXTI_SRC(IN_GPS) | EXTI_SRC(IO_BACK) | EXTI_SRC(IO_BRAKE) | EXTI_SRC(IO_MANAGER_MODE)); - // exti_set(EXTI_IER, EXTI_SRC(IN_GPS) | EXTI_SRC(IO_BACK) | EXTI_SRC(IO_BRAKE) | EXTI_SRC(IO_MANAGER_MODE)); + // exti_set(EXTI_FTS, EXTI_SRC(IO_INTERACTION) | EXTI_SRC(IO_BACK) | EXTI_SRC(IO_BRAKE) | EXTI_SRC(IO_MANAGER_MODE)); // falling + // exti_set(EXTI_DBE, EXTI_SRC(IO_INTERACTION) | EXTI_SRC(IO_BACK) | EXTI_SRC(IO_BRAKE) | EXTI_SRC(IO_MANAGER_MODE)); + // exti_set(EXTI_IER, EXTI_SRC(IO_INTERACTION) | EXTI_SRC(IO_BACK) | EXTI_SRC(IO_BRAKE) | EXTI_SRC(IO_MANAGER_MODE)); // IRQ enable // NVIC_EnableIRQ(EXTI_IRQn); @@ -192,13 +177,13 @@ void app_control_init(void){ sys_sta.Manager =0; sys_sta.Tourist =0; // sys_sta.Smode = 0; - sys_sta.IOgps = Get_Status(IN_GPS); + sys_sta.IOgps = 0; sys_sta.IOmanager = Get_Status(IO_MANAGER_MODE); - sys_sta.I_01 = Get_Status(IN_01); + sys_sta.I_interaction = Get_Status(IO_INTERACTION); + sys_sta.A_brake = Get_Status(IO_AUTO_BRAKE); sys_sta.I_back = Get_Status(IO_BACK); sys_sta.I_brake = Get_Status(IO_BRAKE); - sys_sta.A_brake = 0; sys_sta.A_Speed_Cut = 0; sys_sta.O_lock = 0; sys_sta.P_Radar_EN =1; @@ -223,9 +208,9 @@ void EXTI_IRQHandler(void) { uint32_t irq_sta = EXTI->RIF.Word; - if (irq_sta & EXTI_SRC(IN_GPS))// + if (irq_sta & EXTI_SRC(IO_INTERACTION))// { - EXTI->ICR.Word = EXTI_SRC(IN_GPS); + EXTI->ICR.Word = EXTI_SRC(IO_INTERACTION); } @@ -252,26 +237,24 @@ void EXTI_IRQHandler(void) void Control_procedure(void){ //电门锁 // sys_sta.Smode = 0; - sys_sta.IOgps = Get_Status(IN_GPS); //更新GPS状态 + sys_sta.IOgps = 0; //更新GPS状态 sys_sta.IOmanager = Get_Status(IO_MANAGER_MODE); //更新管理员模式状态 sys_sta.O_lock = (0 != (sys_sta.Pmode | sys_sta.Smode)); Set_Status(OUT_Door_lock, sys_sta.O_lock); - // Set_Status(OUT_Door_lock,(PAD_User_Mode || PAD_Manager_Mode || Get_Status(IN_GPS) || SYS_Manager_STA)); //12V电源 Set_Status(OUT_12V_Control ,sys_sta.O_12V);// 更新12V电源状态 - // Set_Status(OUT_12V_Control,(PAD_LED_ONOFF)); // 刹车 - Set_Status(IO_BRAKE ,sys_sta.A_brake);// 输出为低电平时,可刹车 + Set_Status(IO_AUTO_BRAKE ,sys_sta.A_brake);// 高刹车 + Set_Status(IO_BRAKE ,sys_sta.A_brake);// 低刹车 sys_sta.I_brake = Get_Status(IO_BRAKE); //更新刹车状态// 输出为高电平时,可读取外部刹车状态 - // Set_Status(IO_BRAKE,SYS_AUTO_brake); - sys_sta.I_01 = Get_Status(IN_01); + sys_sta.I_interaction = Get_Status(IO_INTERACTION); sys_sta.I_back = Get_Status(IO_BACK); sys_sta.IO_TX = Get_Status(IO_TTL_TX); sys_sta.IO_RX = Get_Status(IO_TTL_RX); - + // GRB_WS2812_Write_color(64, 0xffffff); //油门控制 if(0 != (sys_sta.Pmode | sys_sta.Smode)){ uint8_t acc_percent =0; @@ -282,31 +265,12 @@ void Control_procedure(void){ acc_percent = (get_in_acc_percent() * sys_conf.Tourist_sLim) / 100.0; } }else{//管理员模式 + // Time_Event_Blink(GRB_WS2812_Event,500,500,0xffff,NULL); acc_percent = (get_in_acc_percent() * sys_conf.Manager_sLim) / 100.0; } set_out_acc_percent(acc_percent); }else{ + // Time_Event_Off(GRB_WS2812_Event,NULL); set_out_acc_percent(0); } - - // //油门控制 - // if((PAD_User_Mode || PAD_Manager_Mode || Get_Status(IN_GPS) || SYS_Manager_STA)){ - // uint8_t acc_percent =0; - - // // acc_percent = get_in_acc_percent() * - // // (((PAD_Manager_Mode || SYS_Manager_STA) ? sys_conf.Manager_sLim : (SYS_AUTO_Speed_Cut ? sys_conf.Speed_Cut_sLim : sys_conf.Tourist_sLim)) / 100.0); - - // if(PAD_Manager_Mode || SYS_Manager_STA){//管理员模式 - // acc_percent = (get_in_acc_percent() * sys_conf.Manager_sLim) / 100.0; - // }else{//游客模式 - // if(SYS_AUTO_Speed_Cut){//自动减速 - // acc_percent = (get_in_acc_percent() * sys_conf.Speed_Cut_sLim) / 100.0; - // }else{ - // acc_percent = (get_in_acc_percent() * sys_conf.Tourist_sLim) / 100.0; - // } - // } - // set_out_acc_percent(acc_percent); - // }else{ - // set_out_acc_percent(0); - // } } diff --git a/projects/blezongkong/src/app_control_out.h b/projects/blezongkong/src/app_control_out.h index fb541b6..cacab78 100644 --- a/projects/blezongkong/src/app_control_out.h +++ b/projects/blezongkong/src/app_control_out.h @@ -22,7 +22,6 @@ extern uint16_t ACC_Dmax ; enum app_adc_dac_chx{ ACC_IN_CH =SADC_CH_AIN7, // 油门输入 - ACC_FEED_CH =SADC_CH_AIN2, // 油门输出监测 BAT_IN_CH =SADC_CH_AIN3, // 电池输入 }; @@ -30,27 +29,28 @@ enum app_adc_dac_chx{ enum app_control{ OUT_12V_Control =PA17, // 12V电源控制输出 /H:12V输出 OUT_Door_lock =PA18, // 电门锁 /H:开锁 - IN_01 =PA19, // 自定义输入 - IN_GPS =PA03, // GPS输入0 /边沿触发 IO_MANAGER_MODE =PA13, // 管理员模式 /边沿触发 IO_BACK =PA14, // 倒车 /H:前进/L:后退 - IO_BRAKE =PA15, // 制动 /L:低使能 + IO_AUTO_BRAKE =PA03, // 高制动 /高:高使能 + IO_BRAKE =PA15, // 低制动 /L:低使能 IO_TTL_TX =PA11, // 串口发送 IO_TTL_RX =PA12, // 串口接收 - RADAR_TXD0 =PA07, // 串口0发送 - RADAR_RXD0 =PA06, // 串口0接收 + RADAR_TXD0 =PA06, // 串口0发送 + RADAR_RXD0 =PA07, // 串口0接收 PAD_TXD1 =PA10, // 串口1发送 PAD_RXD1 =PA09, // 串口1接收 ACC_PA8_ADC7 =PA08, // 油门输入 PWM4_DAC =PA05, // 油门输出 - ACC_FEEDBACK_ADC2 =PA02, // 油门输出监测 RGB_DATA_IO =PA16, // RGB数据输出 BAT_PA4_ADC3 =PA04, // 电池电压输入 + + OUT_BUZZER =PA19, // 蜂鸣器输出 + IO_INTERACTION =PA02, // 交互信号输入 (人体感应器) }; typedef struct sys_sta{ @@ -74,7 +74,7 @@ typedef struct sys_sta{ union{// 输入状态 uint8_t I_STA:8; struct{ - uint8_t I_01 :1; // 自定义输入状态 + uint8_t I_interaction :1; // 交互信号(人体感应器)输入状态 uint8_t I_brake :1; // 制动信号输入状态 uint8_t I_back :1; // 倒车信号输入状态 uint8_t A_brake :1; // 自动刹车状态