根据新板子调整软件配置 zsxfly20240104

This commit is contained in:
zsx 2025-01-04 12:59:51 +08:00
parent 967e983df7
commit cfc764438b
4 changed files with 62 additions and 179 deletions

View File

@ -22,7 +22,7 @@
</DaveTm>
<Target>
<TargetName>uartTest</TargetName>
<TargetName>OTA</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
@ -30,8 +30,8 @@
<OPTTT>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunSim>1</RunSim>
<RunTarget>0</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
@ -88,8 +88,8 @@
<sRmem>1</sRmem>
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tLdApp>0</tLdApp>
<tGomain>0</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
@ -117,106 +117,25 @@
<pMon>Segger\JL2CM3.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>JL2CM3</Key>
<Name>-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)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
<Name>-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)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>0</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>402735504</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename></Filename>
<ExecCommand></ExecCommand>
<Expression>0x18014190</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>0</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>402735500</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename></Filename>
<ExecCommand></ExecCommand>
<Expression>0x1801418C</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>0</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>402735502</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename></Filename>
<ExecCommand></ExecCommand>
<Expression>0x1801418E</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>gBleSleep</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>DMA_RX_BUFF</ItemText>
</Ww>
</WatchWindow1>
<Breakpoint/>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>1</aLwin>
<periodic>0</periodic>
<aLwin>0</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>
<viewmode>0</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>

View File

@ -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){

View File

@ -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_input(OUT_Door_lock,IE_UP);
gpio_dir_output(IO_MANAGER_MODE,OE_HIGH);// 管理员模式 /边沿触发
gpio_dir_input(IO_MANAGER_MODE,IE_UP);
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_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_input(IO_TTL_TX,IE_UP); // 串口发送
gpio_dir_input(IO_TTL_RX,IE_UP); // 串口接收
gpio_dir_input(IO_TTL_TX,IE_DOWN); // 串口发送
gpio_dir_input(IO_TTL_RX,IE_DOWN); // 串口接收
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);
// }
}

View File

@ -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; // 自动刹车状态