Commit f3863877 authored by 何锐's avatar 何锐

feat:上电左转闪烁,显示当前ACC电压

parent 6b0cc17f
......@@ -591,160 +591,12 @@ void Function_Check_Ctrl(uint32_t cmd)
switch (MENU_CHECK_STEP)
{
case 0:
{
if(CHECK_Ctrl_delay <= 10)
{
RELAY_VBAT_MCU = 0;
RELAY_DC12V_MCU = 0;
RELAY_KEY_MCU = 0;
}
else
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
// Aima_SLF(1u, 0x04, 0x1, 1u);
// left_turn = 1;
}
break;
}
case 1:
{
left_turn = 0;
if(CHECK_Ctrl_delay <= 10)
{
RELAY_VBAT_MCU = 0;
RELAY_DC12V_MCU = 0;
RELAY_KEY_MCU = 0;
}
else if ( CHECK_Ctrl_delay > 10 && CHECK_Ctrl_delay <= 60)
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
}
else if(CHECK_Ctrl_delay > 60 && CHECK_Ctrl_delay <= 65)
{
Aima_SLF(1u, 0x03, 0x1, 1u);
}
else
{
}
// ONE_START = 1;
case 1:
break;
}
case 2:
{
if(CHECK_Ctrl_delay <=10)
{
RELAY_VBAT_MCU = 0;
RELAY_DC12V_MCU = 0;
RELAY_KEY_MCU = 0;
}
else
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 0;
}
left_turn = 0;
break;
}
case 3:
{
RELAY_DC12V_MCU = 1;
RELAY_VBAT_MCU = 1;
if(ONE_KEY_ONOFF <= 20)
{
RELAY_KEY_MCU = 1;
ONE_START = 1;
}
else if(ONE_KEY_ONOFF <= 40)
{
RELAY_KEY_MCU = 0;
ONE_START = 0;
}
else if(ONE_KEY_ONOFF <= 60)
{
RELAY_KEY_MCU = 0;
ONE_START = 1;
}
else if(ONE_KEY_ONOFF <=70)
{
RELAY_KEY_MCU = 0;
ONE_START = 0;
}
else if(ONE_KEY_ONOFF>110 && ONE_KEY_ONOFF <=120)
{
ONE_START = 1;
ABC_OUT = 1;
}
else
{
ABC_OUT = 0;
}
break;
}
case 4:
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
ONE_START = 1;
FULL_BEAM = 0;
break;
}
case 5:
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
FULL_BEAM = 1;
ZXSW_12V = 0;
left_turn = 0;
break;
}
case 6:
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
ZXSW_12V = 1;
FULL_BEAM = 0;
left_turn = 1;
right_turn = 0;
break;
}
case 7:
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
ZXSW_12V = 1;
left_turn = 0;
right_turn = 1;
RELAY_LIGHTCONTROL_MCU = 0;
break;
}
case 8:
{
RELAY_VBAT_MCU = 1;
RELAY_DC12V_MCU = 1;
RELAY_KEY_MCU = 1;
ZXSW_12V = 0;
right_turn = 0;
RELAY_LIGHTCONTROL_MCU = 1;
ABC_OUT = 0;
break;
}
default:
break;
}
}
......
......@@ -4421,6 +4421,7 @@ void Display_Send_Vspead(uint8_t menu)
uint16_t ZXSW_Voltage = 0;
uint16_t Voltage_left = 0;
uint16_t Voltage_right = 0;
uint16_t Voltage_ACC = 0;
// static uint8_t Type_Clear_FLAG = 0;
if ( (Type_Clear != menu ))
{
......@@ -4433,97 +4434,32 @@ void Display_Send_Vspead(uint8_t menu)
switch (menu)
{
case 0:
{
if(CHECK_Ctrl_delay > 20)
{
CHECK_Value = 1;
}
}
Voltage_ACC = ADC_Read_Signal(ADC_CH_ACC1_VOLTAGE);
Voltage_left = Voltage_ACC/1000;
Voltage_right = (Voltage_ACC/10)%10;
uint8_t mLRbuff [3] = {0x2E,Voltage_right,0xff};
General_Number_Disp(mLRbuff, 175, 160);
GUI_General_Digit_Display(Voltage_left, Num_15, 2, 1, ODODigitNum09PosX, 160);
TFT_LCD_Draw_Bmp(210, 160, ( uint8_t * )gImage_Dyy_words_19X224_Y166); //单位:V
break;
case 1:
{
if(CHECK_Ctrl_delay >= 75)
{
CHECK_Value = 1;
}
break;
}
case 2:
if(CHECK_Ctrl_delay >=20)
{
if(DIS_AD == 0)
{
TFT_LCD_Draw_Bmp(51,261,( uint8_t * )gImage_Alarm_09_Word0X51_Y261);
DIS_VALUE = 1;
}
else
{
if(DIS_VALUE == 1)
{
if(DIS_AD == 1)
{
DIS_VALUE = 0;
CHECK_Value = 1;
}
else
{
CHECK_Value = 0;
}
}
// TFT_LCD_Draw_Box(0, 261, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
}
case 2:
break;
case 3:
// if(CHECK_Ctrl_delay >= 100)
// {
// CHECK_Value = 1;
// }
// else
// {
// CHECK_Value = 0;
// }
if(DIS_AD == 0)
{
DIS_VALUE = 1;
TFT_LCD_Draw_Bmp(51,261,( uint8_t * )gImage_Alarm_10_Word0X51_Y261);
}
else
{
if(DIS_VALUE == 1)
{
if(DIS_AD == 1)
{
DIS_VALUE = 0;
CHECK_Value = 1;
}
else
{
CHECK_Value = 0;
}
}
// TFT_LCD_Draw_Box(0, 261, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
case 3:
break;
case 4:
if(CHECK_Ctrl_delay >= 30)
{
CHECK_Value = 1;
}
break;
case 5:
if(CHECK_Ctrl_delay >= 30)
{
CHECK_Value = 1;
}
break;
case 6:
ZXSW_Voltage = ADC_Read_Signal(ADC_CH_ZXSW_VOLTAGE);
Voltage_left = ZXSW_Voltage/1000;
Voltage_right = (ZXSW_Voltage/10)%10;
uint8_t mLRbuff [3] = {0x2E,Voltage_right,0xff};
// uint8_t mLRbuff [3] = {0x2E,Voltage_right,0xff};
General_Number_Disp(mLRbuff, 175, 160);
GUI_General_Digit_Display(Voltage_left, Num_15, 2, 1, ODODigitNum09PosX, 160);
TFT_LCD_Draw_Bmp(210, 160, ( uint8_t * )gImage_Dyy_words_19X224_Y166); //单位:V
......@@ -4537,6 +4473,7 @@ void Display_Send_Vspead(uint8_t menu)
TFT_LCD_Draw_Box(0, 261, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
break;
case 7:
ZXSW_Voltage = ADC_Read_Signal(ADC_CH_ZXSW_VOLTAGE);
Voltage_left = ZXSW_Voltage/1000;
......@@ -4555,6 +4492,7 @@ void Display_Send_Vspead(uint8_t menu)
TFT_LCD_Draw_Box(0, 261, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
break;
case 8:
GKDD_Voltage = ADC_Read_Signal(ADC_CH_GKDD_VOLTAGE);
Voltage_left = GKDD_Voltage/1000;
......@@ -4572,8 +4510,8 @@ void Display_Send_Vspead(uint8_t menu)
{
TFT_LCD_Draw_Box(0, 261, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
}
break;
default:
MENU_CHECK_STEP = 0;
break;
......
......@@ -1094,7 +1094,6 @@ uint32_t R485_SendMACaddress_0x42(void)
R485_ID42h.Sig.BLE_MAC02 = 0;
u32sendendflag = R485_Send(0x42, R485_ID42h.Msg, sizeof(R485_ID42h.Msg));
RS485_send_time = 0;
}
RS485_TX_finish = 1;
return u32sendendflag;
......@@ -1103,28 +1102,40 @@ uint32_t R485_SendMACaddress_0x42(void)
uint32_t R485_Send_test(void)
{
uint32_t u32sendendflag = 0;
memset(R485_ID42h.Msg, 0x00, 20);
switch (MENU_CHECK_STEP)
{
case 0:
BCMLED.Sig.Lamp = 0x01; //左转
BCMLED.Sig.FlickerFrequency = 0x05; //频率
u32sendendflag = R485_Send(0x09, BCMLED.Msg, sizeof(BCMLED.Msg));
// Dashboard.Sig.textbit2 = 0x0A; //车速
// Dashboard.Sig.textbit7 = 0x7F; //P档
// u32sendendflag = R485_Send(0x04, Dashboard.Msg, sizeof(Dashboard.Msg));
break;
case 1:
break;
case 2:
break;
case 3:
AIMAtest.Sig.PGear = 0;
u32sendendflag = R485_Send(0x05, AIMAtest.Msg, sizeof(AIMAtest.Msg));
// AIMAtest.Sig.PGear = 0;
// u32sendendflag = R485_Send(0x05, AIMAtest.Msg, sizeof(AIMAtest.Msg));
break;
case 4:
AIMAtest.Sig.PGear = 1;
u32sendendflag = R485_Send(0x05, AIMAtest.Msg, sizeof(AIMAtest.Msg));
// AIMAtest.Sig.PGear = 1;
// u32sendendflag = R485_Send(0x05, AIMAtest.Msg, sizeof(AIMAtest.Msg));
break;
case 5:
AIMAtest.Sig.PGear = 0;
u32sendendflag = R485_Send(0x05, AIMAtest.Msg, sizeof(AIMAtest.Msg));
// AIMAtest.Sig.PGear = 0;
// u32sendendflag = R485_Send(0x05, AIMAtest.Msg, sizeof(AIMAtest.Msg));
break;
case 6:
break;
......
......@@ -1104,44 +1104,51 @@ typedef union
typedef union
{
uint8_t Msg[20];
uint8_t Msg[7];
struct
{
uint8_t : 8; /* 0预留 */
uint8_t : 8; /* 1预留 */
uint8_t : 8;
uint8_t : 5;
uint8_t PGear : 1;
uint8_t : 2;
uint8_t : 8; /* 4预留 */
uint8_t : 8; /* 5预留 */
uint8_t : 8; /* 6预留 */
uint8_t : 8; /* 7预留 */
uint8_t : 8; /* 8预留 */
uint8_t : 8; /* 9预留 */
uint8_t : 8; /* 10预留 */
uint8_t : 8; /* 11预留 */
uint8_t : 8; /* 12预留 */
uint8_t : 8; /* 13预留 */
uint8_t : 8; /* 14预留 */
uint8_t : 8; /* 15预留 */
uint8_t : 8; /* 16预留 */
uint8_t : 8; /* 17预留 */
uint8_t : 8; /* 18预留 */
uint8_t : 8; /* 19预留 */
uint8_t : 8; /* 20预留 */
uint8_t text1 : 8;
uint8_t text2 : 8;
uint8_t text3 : 8;
uint8_t text4 : 8;
uint8_t text5 : 8;
uint8_t Lamp : 4;
uint8_t FlickerFrequency : 4;
uint8_t text7 : 8;
}Sig;
}_BCMLED;
}_AIMAtest;
typedef union
{
uint8_t Msg[22];
struct
{
uint8_t textbit1 : 8;
uint8_t textbit2 : 8; //车速
uint8_t textbit3 : 8;
uint8_t textbit4 : 8;
uint8_t textbit5 : 8;
uint8_t textbit6 : 8;
uint8_t textbit7 : 8; //车身状态
uint8_t textbit8 : 8;
uint8_t textbit9 : 8;
uint8_t textbit10 : 8;
uint8_t textbit11 : 8;
uint8_t textbit12 : 8;
uint8_t textbit13 : 8;
uint8_t textbit14 : 8;
uint8_t textbit15 : 8;
uint8_t textbit16 : 8;
uint8_t textbit17 : 8;
uint8_t textbit18 : 8;
uint8_t textbit19 : 8;
uint8_t textbit20 : 8;
uint8_t textbit21 : 8;
uint8_t textbit22 : 8;
}Sig;
}_Dashboard;
typedef struct
{
......@@ -1154,7 +1161,8 @@ typedef struct
uint8_t weizhilight1;
uint32_t power1;
}LineSta;
extern _AIMAtest AIMAtest;
extern _BCMLED BCMLED;
extern _Dashboard Dashboard;
extern LineSta LineGetSta;
extern _ID0X40h_Data R485_ID40h;
extern _ID0X48h_Data R485_ID48h;
......
......@@ -11,9 +11,9 @@
#define ABC_OUT GPIO_OUT_PORT00_PIN04 //ABC轮动报警输出
#define BCDD_MCU GPIO_OUT_PORT10_PIN00 //脚撑
#define RELAY_VBAT_MCU GPIO_OUT_PORT10_PIN10
#define RELAY_DC12V_MCU GPIO_OUT_PORT10_PIN09
#define RELAY_KEY_MCU GPIO_OUT_PORT10_PIN07
#define RELAY_VBAT_MCU GPIO_OUT_PORT10_PIN10 //VBAT
#define RELAY_DC12V_MCU GPIO_OUT_PORT10_PIN09 //12V一线通
#define RELAY_KEY_MCU GPIO_OUT_PORT10_PIN07 //ACC
#define RELAY_LIGHTCONTROL_MCU GPIO_OUT_PORT10_PIN06 //光控大灯MCU
#define ZXSW_12V GPIO_OUT_PORT11_PIN05 //转向12V
......
......@@ -32,7 +32,8 @@ _ID0X42h_Data R485_ID42h;
_ID0X4Ah_Data R485_ID4Ah;
_ID0X4Dh_Data R485_ID4Dh;
LineSta LineGetSta;
_AIMAtest AIMAtest;
_BCMLED BCMLED;
_Dashboard Dashboard;
void R485_TX_Init(void)
{
......@@ -177,24 +178,16 @@ uint32_t R485_Send(const uint16_t cmdID, const uint8_t* pData, uint8_t len)
int i = 0;
uint16_t checksum = 0;
uint32_t frameLen;
// if (len + R485_DATA_PACKAGE_MIN_LEN > 71)
// {
// return 0;
// }
// if (len != 64)
// {
// return 0;
// }
dataBuf[0] = 0xEF; /* 帧头 */
dataBuf[1] = 0xDD;/* ID */
dataBuf[2] = 0x8D;/* ID */
dataBuf[1] = 0xDD;/* 连续帧 */
dataBuf[2] = 0x8D;/* 连续帧 */
dataBuf[3] = cmdID; /* 设备地址 */
// dataBuf[3] = R485_DATA_LEN; /* 长度 固定64Byte */
dataBuf[4] = 0x80;/* 命令 */
dataBuf[5] = len;
frameLen = 6;
dataBuf[5] = len + 1;
dataBuf[6] = 0x01;
frameLen = 7;
// 数据 Data
for (i = 0; i < len; ++i)
{
......@@ -202,9 +195,7 @@ uint32_t R485_Send(const uint16_t cmdID, const uint8_t* pData, uint8_t len)
frameLen++;
}
// checksum = Yadi_CAL_Data_Sum(&dataBuf[2], R485_DATA_LEN + 2);
checksum = RS485_CRC16_Calc(&dataBuf[0], len + 6);
// checksum = 0;
checksum = RS485_CRC16_Calc(&dataBuf[0], len + 7);
dataBuf[frameLen] = checksum & 0xff;
frameLen++;
......@@ -212,18 +203,11 @@ uint32_t R485_Send(const uint16_t cmdID, const uint8_t* pData, uint8_t len)
frameLen++;
dataBuf[frameLen] = 0xEE;
frameLen++;
// if (frameLen != 71)
// {
// return 0;
// }
uint8_t sendresult = 0;
sendresult = UART_Ch0_Send_Multiple_Byte(dataBuf,frameLen);
RS485_TX_finish = 1;
// while(1)
// {
if(sendresult == 0)
{
return sendresult;
}
else
......@@ -231,10 +215,7 @@ uint32_t R485_Send(const uint16_t cmdID, const uint8_t* pData, uint8_t len)
sendresult = UART_Ch0_Send_Multiple_Byte(dataBuf,frameLen);
}
return sendresult;
// }
}
uint32_t R485_AIMA_Send(void)
{
uint8_t dataBuf[] = {
......@@ -267,150 +248,29 @@ uint8_t sendmsgAll[8];
uint32_t sendnum = 1;
void RS485_User_Tx_Data(void)
{
#if (0)
uint8_t flag = 0;
uint32_t sendfinishflag = 0;
// if(firstflag = 0)
// {
memcpy(lastdata,nowdata,4);
// }
// m
sendmsgAll[0] = (uint8_t)sendnum & 0xFF;
sendmsgAll[1] = ((uint8_t)(sendnum >>8)) & 0xFF;
sendmsgAll[2] = ((uint8_t)(sendnum >>16)) & 0xFF;
sendmsgAll[3] = ((uint8_t)(sendnum >>24)) & 0xFF;
sendmsgAll[4] = ((uint8_t)(sendnum)) & 0xFF;
sendmsgAll[5] = ((uint8_t)(sendnum >>8)) & 0xFF;
sendmsgAll[6] = ((uint8_t)(sendnum >>16)) & 0xFF;
sendmsgAll[7] = ((uint8_t)(sendnum >>24)) & 0xFF;
if(RS485_TX_finish == 0)
{
// LINE_OUT_NEG_09 = 1;
switch (RS485_send_num)
{
case RS485_Tx_ID48_Idx:
sendfinishflag = R485_Send(0x70, sendmsgAll, 8);
RS485_TX_finish = 1;
if(sendfinishflag == 0)
{
if(RS485_TX_finish == 1)
{
// RS485_send_num++;
// lastdata[0] = (uint8_t)sendnum & 0xFF;
// lastdata[1] = ((uint8_t)(sendnum >>8)) & 0xFF;
// lastdata[2] = ((uint8_t)(sendnum >>16)) & 0xFF;
// lastdata[3] = ((uint8_t)(sendnum >>24)) & 0xFF;
nowdata[0] = (uint8_t)sendnum & 0xFF;
nowdata[1] = ((uint8_t)(sendnum >>8)) & 0xFF;
nowdata[2] = ((uint8_t)(sendnum >>16)) & 0xFF;
nowdata[3] = ((uint8_t)(sendnum >>24)) & 0xFF;
sendnum++;
}
}
break;
case RS485_Tx_ID49_Idx:
sendfinishflag = R485_Send(0x71, sendmsgAll, 8);
RS485_TX_finish = 1;
if(sendfinishflag == 0)
{
if(RS485_TX_finish == 1)
{
// sendnum++;
RS485_send_num ++;
}
}
// uart_wait_tx_done(R485_UART_PORT, 100);
break;
case RS485_Tx_ID4A_Idx:
sendfinishflag = R485_Send(0x72, sendmsgAll, sizeof(sendmsgAll));
RS485_TX_finish = 1;
if(sendfinishflag == 0)
{
RS485_TX_finish = 1;
if(RS485_TX_finish == 1)
{
RS485_send_num++;
}
}
break;
case 3:
sendfinishflag = R485_Send(0x73, sendmsgAll, sizeof(sendmsgAll));
RS485_TX_finish = 1;
if(sendfinishflag == 0)
{
RS485_TX_finish = 1;
if(RS485_TX_finish == 1)
{
RS485_send_num++;
}
}
break;
case 4:
sendfinishflag = R485_Send(0x74, sendmsgAll, sizeof(sendmsgAll));
RS485_TX_finish = 1;
if(sendfinishflag == 0)
{
RS485_TX_finish = 1;
if(RS485_TX_finish == 1)
{
RS485_send_num++;
}
}
break;
default:
// sendnum++;
RS485_send_num = 0;
break;
RS485_TX_finish = 1;
}
}
#endif
#if(1)
uint8_t flag = 0;
uint32_t sendfinishflag = 0;
// if(RS485_send_time > 3000)
// {
switch (RS485_send_num)
{
case RS485_Tx_ID48_Idx:
sendfinishflag = R485_Send_test();
RS485_TX_finish = 1;
if(sendfinishflag == 0)
{
if(RS485_TX_finish == 1)
{
// sendnum++;
RS485_send_time = 0;
// RS485_send_num ++;
}
}
break;
default:
flag = 1;
RS485_send_time = 0;
RS485_send_num = 0;
break;
}
#endif
}
void backsend(void)
{
......
......@@ -74,7 +74,7 @@ ADC_Data_st_t stADCData[ADC_SIGNAL_CH_NUMBER];
const uint8_t u8ADCChList[ADC_CONV_CH_NUMBER] =
{
9U, 15U, 11U, 8U,
9U, 15U, 11U, 8U, 7U,
};
const ADC_Ch_Cfg_st_t stADCChCfg[ADC_SIGNAL_CH_NUMBER] =
......@@ -83,6 +83,7 @@ const ADC_Ch_Cfg_st_t stADCChCfg[ADC_SIGNAL_CH_NUMBER] =
{ 1U, 0U, 0U, 0U, 0U, 1U, ADC_Voltage_Calc_Circuit101,},
{ 2U, 0U, 0U, 0U, 0U, 1U, ADC_Voltage_Calc_Circuit102,},
{ 3U, 0U, 0U, 0U, 0U, 1U, ADC_Voltage_Calc_Circuit102,},
{ 4U, 0U, 0U, 0U, 0U, 1U, ADC_Voltage_Calc_Circuit102,},
};
const ADC_Res_List_st_t stADCResList[ADC_SIGNAL_CH_NUMBER] =
......@@ -91,6 +92,7 @@ const ADC_Res_List_st_t stADCResList[ADC_SIGNAL_CH_NUMBER] =
{ 0U, 100000U, 0U, 0U,},
{ 3300000U, 1000000U, 0U, 0U,},
{ 3300000U, 1000000U, 0U, 0U,},
{ 3300000U, 100000U, 0U, 0U,},
};
/* Private function prototypes ----------------------------------------------*/
......
......@@ -31,11 +31,12 @@ enum ADCChName
ADC_CH_KL30_VOLTAGE,
ADC_CH_GKDD_VOLTAGE,
ADC_CH_ZXSW_VOLTAGE,
ADC_CH_ACC1_VOLTAGE,
};
/* Exported macro ------------------------------------------------------------*/
#define ADC_TOTAL_CH_NUMBER (4U)
#define ADC_SIGNAL_CH_NUMBER (4U)
#define ADC_TOTAL_CH_NUMBER (5U)
#define ADC_SIGNAL_CH_NUMBER (5U)
#define ADC_REF_VOLTAGE u16ADCRefVoltage
/* Exported variables --------------------------------------------------------*/
......
......@@ -114,6 +114,8 @@ void Sys_Startup_Init(void)
// UART_Init(UART_RLIN31, &loc_config);
// Auto_ONOFF = 1;
// AutoFlag = 1;
RELAY_VBAT_MCU = 1;
RELAY_KEY_MCU = 1;
}
/***********************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment