Commit a10129b4 authored by 张金硕's avatar 张金硕

Merge branch 'jinshuo' into 'dev'

Jinshuo

See merge request !115
parents 041045d7 ea6e58ef
......@@ -1028,16 +1028,16 @@
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\System_Monitor\System_Monitor_User.h</FilePath>
</File>
<File>
<FileName>keil_S1.0.8_20240924.lib</FileName>
<FileType>4</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\keil_S1.0.8_20240924.lib</FilePath>
</File>
<File>
<FileName>UartProtocol.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\UartProtocol.h</FilePath>
</File>
<File>
<FileName>UartProtocol_Test_BW121_Bat32_241219.lib</FileName>
<FileType>4</FileType>
<FilePath>..\..\..\..\Source\Component\AMT630H\UartProtocol_Test_BW121_Bat32_241219.lib</FilePath>
</File>
</Files>
</Group>
<Group>
......
......@@ -9,7 +9,7 @@ LR_IROM1 0x0000C400 0x00073C00 { ; load region size_region
.ANY (+RO)
.ANY (+XO)
}
RW_IRAM1 0x20000000 0x0000FF00 { ; RW data
RW_IRAM1 0x20000400 0x0000FF00 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM2 0x2000FF00 0x00000100 { ; RW data
......
......@@ -39,6 +39,8 @@ extern void BackLight_Process(void);
extern Light_uint8_t Backlight_GetPwmLevel(void);
extern void Data_Light_Res_service(Light_uint8_t deltaTime);
#endif
......@@ -246,10 +246,10 @@ void TextService(void)
MCUVersionASCLLList[12] = DATA_Version[6];
MCUVersionASCLLList[14] = DATA_Version[7];
MCUVersionASCLLList[16] = 0x2E;
MCUVersionASCLLList[18] = SW_Version[0];
MCUVersionASCLLList[18] = (uint8_t)((SWV >> 8u) & 0x0Fu) + 0x30u;
MCUVersionASCLLList[20] = 0x2E;
MCUVersionASCLLList[22] = SW_Version[1];
MCUVersionASCLLList[24] = SW_Version[2];
MCUVersionASCLLList[22] = (uint8_t)((SWV >> 4u) & 0x0Fu) + 0x30u;
MCUVersionASCLLList[24] = (uint8_t)(SWV & 0x0Fu) + 0x30u;
memset(InformationOSVersion, 0, sizeof(InformationOSVersion));
......
......@@ -25,12 +25,10 @@ typedef struct __attribute__((aligned(4)))
}TEXT_STRUCT;
#define INFORMATION_VERSION_DATE "20241129"
#define SW_EXTERNAL_VERSION "100"
#define POWER_STATE_IGN_OFF 0u
#define POWER_STATE_IGN_ON 1u
static const uint8_t DATA_Version[8] = {INFORMATION_VERSION_DATE};
static const uint8_t SW_Version[3] = {SW_EXTERNAL_VERSION};
/*QRCode X Y height Width*/
......@@ -59,4 +57,4 @@ extern TEXT_STRUCT TextPara[];
extern uint8_t UUIDConfigBuf[21];
extern uint8_t IOState;
#endif
\ No newline at end of file
#endif
......@@ -4,11 +4,11 @@
#define FAST_TIME 15 //20*20 400ms变化一格
#define NORMAL_TIME 500 //500*20 10s变化一格
#define Disconnected_TIME 1 //掉线时间
#pragma ghs section bss = ".myNonInitArea"
// #pragma ghs section bss = ".myNonInitArea"
//_Data_Cng Data_Cng_Percent;
//_Data_Cng Data_Cng_Pressure;
Hys_uint8_t u8HysRamData[HYS_RAM_DATA_LEN];
#pragma ghs section bss = default
// #pragma ghs section bss = default
DataCoolantTempStruct DataCoolantTemp ;
DataCoolantTempDisStruct DataCoolantTemp_Dis;
......
......@@ -101,4 +101,4 @@ uint8_t Get_OilPressureStauts(void)
{
return 0u;
}
}
\ No newline at end of file
}
......@@ -7,4 +7,4 @@ void Oil_Pressure_KL30_Init(void);
void Oil_Pressure_KL15_Init(void);
void Oil_R_Cal(uint8_t deltaTime);
uint8_t Get_OilPressureStauts(void);
#endif
\ No newline at end of file
#endif
......@@ -3,7 +3,7 @@
#include "CAN_CH0_CAN_Communication_Matrix.h"
FaultCodeList_t FaultCode_t;
uint32_t FaultCodeList [MaxFaultCode];
static uint8_t u8FaultCodeValid = 0;
// static uint8_t u8FaultCodeValid = 0;
uint32_t Get_FaultCodeDtc1(void)
{
uint32_t u16FaultCode = 0x0000;
......
......@@ -40,6 +40,7 @@ void FaultCode_Servers(void);
extern uint32_t Get_Current_FaultCode(void);
extern uint8_t Get_Current_Hight_FaultCode(void);
extern uint8_t Get_Current_Mid_FaultCode(void);
extern uint8_t Get_FaultCode_Lost(void);
// extern uint8_t Get_FaultCode_Valid(void);
#endif
\ No newline at end of file
#endif
......@@ -68,4 +68,4 @@ Hys_uint8_t HYS_Get_Seg(HYS_Num_en_t enHYSIndex);
HYS_Operate_Type_en_t HYS_Reset_Physical_Quantity(HYS_Num_en_t enHYSIndex);
/*读取版本号*/
Hys_uint8_t HYS_Version_Read(void);
#endif
\ No newline at end of file
#endif
......@@ -28,7 +28,7 @@ static uint16_t SocStartupCnt = 0u;
static Core_Monitor_t Core_Monitor;
static Rec_ID_12_Struct RecID12;
Rec_0x012_un_t g_unRec_0x012;
static void Core_Poweroff_Service();
static void Core_Poweroff_Service(void);
uint8_t g_u8AvgSpeedOFFValid = 0U;
uint8_t SOC_Online_Status_Get(void)
......
#include "AMT630H.h"
#include <stdint.h>
#include "UartProtocol.h"
#include "Components.h"
#include "PicBin.h"
#include "GpioUser.h"
__align(4) /* 四字节对齐 */
......@@ -11,7 +10,8 @@ __align(4) /* 四字节对齐 */
unsigned int AMT630H_InitTime = 0;
uint8_t g_sysFlag_Lcdcheck = 0;
/* Initialization */
LCD_TFT_SOUND_PARA_ST LcdSoundParamterData;
LCD_TFT_PARA_ST LcdSoundParamterData;
LCD_TFT_MIPI_PARA_ST LcdMipiSoundParamterDate;
SOFTWARE_VERSION_ST amt630Version;
uint8_t Amt630hInitFinishFlag = 0;
......@@ -129,8 +129,8 @@ static const uint16_t BootAnimationList[AMT630H_ANIMATION_PIC_NUM] = {
};
void AMT630H_Animation_PlayProc(uint16_t PicIndex)
{
unsigned char *pBuf;
uint32_t tmpLen = 0;
// unsigned char *pBuf;
// uint32_t tmpLen = 0;
SetPageGuid(GRAPHICS_PAGE_0, 1, 0, 0);
SetPageBackground(GRAPHICS_PAGE_0, PicIndex);
// if (AMT630H_Animation_DispPic == (AMT630H_ANIMATION_PIC_NUM - 30))
......@@ -197,6 +197,76 @@ void Delay_Time_Ctrl(unsigned long Tms)
Delay_Time_Set = 0;
}
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
uint8_t UartRevBuff[MCU_RX_630_UART_BUF_SIZE] = { 0 };
uint8_t UartRevBuff1[MCU_RX_630_UART_BUF_SIZE] = { 0 };
uint32_t UartRevPos = 0;
uint32_t UartLastCnt = 0;
uint32_t UartRevCnts = 0;
uint32_t rx_flag = 0;
uint32_t textError = 0;
uint8_t err_type = 0;
uint32_t EnterErrorCnts = 0;
uint32_t AddressError = 0;
uint32_t textLastAddressError = 0x40041512;
void mwAmt630hUartDMA_RecvData(void)
{
uint32_t rxCnt = 0;
uint32_t tmpCnt = 0;
uint8_t overFlowFlag = 0;
// accumulate receive Counts
rxCnt = DMAVEC->CTRL[USE_DMA_AREA].DMRLD - DMAVEC->CTRL[USE_DMA_AREA].DMACT;
if (rxCnt > MCU_RX_630_UART_BUF_SIZE)
{
rxCnt = UartLastCnt;
}
if (rxCnt != UartLastCnt)
{
rx_flag = 1;
if (rxCnt > UartLastCnt)
{
tmpCnt = rxCnt - UartLastCnt;
}
else
{
tmpCnt = MCU_RX_630_UART_BUF_SIZE - UartLastCnt;
overFlowFlag = 1;
}
UartLastCnt = rxCnt;
}
if (rx_flag == 1)
{
if (overFlowFlag == 0)
{
memcpy(&UartRevBuff[UartRevCnts],&UartRevBuff1[UartRevCnts],tmpCnt);
UartRevCnts += tmpCnt;
if (UartRevCnts >= MCU_RX_630_UART_BUF_SIZE)
{
UartRevCnts = 0;
}
}
else
{
memcpy(&UartRevBuff[UartRevCnts],&UartRevBuff1[UartRevCnts],tmpCnt);
UartRevCnts = 0;
memcpy(&UartRevBuff[UartRevCnts],&UartRevBuff1[UartRevCnts],rxCnt);
overFlowFlag = 0;
UartRevCnts += rxCnt;
}
rx_flag = 0;
}
}
#endif
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
uint8_t UartRevBuff[0x1000] = { 0 };
uint32_t UartRevCnts = 0;
void Amt630hUartRecvData(uint16_t u16UARTData)
......@@ -207,6 +277,7 @@ void Amt630hUartRecvData(uint16_t u16UARTData)
UartRevCnts = 0;
}
}
#endif
void AMT630H_RstCtrl(void)
{
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 0);//630
......@@ -214,15 +285,16 @@ void AMT630H_RstCtrl(void)
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 0);//lcd
RTE_GPIO_Set_Level(MCU_RSTB_LCD, 0);//lcd
Delay_Time_Ctrl(10);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 1);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 1);
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 1);
Delay_Time_Ctrl(45);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 1);
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(x1530_EN_MCU, 1);
Delay_Time_Ctrl(55);
RTE_GPIO_Set_Level(MCU_RSTB_LCD, 1);
Delay_Time_Ctrl(15);
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 1);
Delay_Time_Ctrl(10);
RTE_GPIO_Set_Level(x1530_EN_MCU, 1);//1530
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 1);//1530
Delay_Time_Ctrl(30);
}
void Amt630hInit(void)
......@@ -265,7 +337,14 @@ void Amt630hInit(void)
LcdSoundParamterData.SoundChannelNum = 0;
LcdSoundParamterData.SoundFreq = AUDIO_FREQ_48K;
SetLcdSoundParameter(&LcdSoundParamterData);
LcdMipiSoundParamterDate.MipiClkFreq = 0;
LcdMipiSoundParamterDate.MipiDisplaymMode = 0;
LcdMipiSoundParamterDate.MipiLane = 0;
LcdMipiSoundParamterDate.MipiNpPolarityInverse = 0;
RN6752_PARA_ST* LcdSoundRn6752ParamterDate = NULL;
// SetLcdSoundParameter(&LcdSoundParamterData);
SetLcdParameter(&LcdSoundParamterData,&LcdMipiSoundParamterDate,AMT630_UART3,LcdSoundRn6752ParamterDate);
SetSwVerBuf((uint8_t*)&amt630Version);
User_PicIndexDataInit();
......@@ -293,10 +372,11 @@ void Amt630hInit(void)
void AMT630H_Sleep(void)
{
RTE_GPIO_Set_Level(STBYB_LCD_MCU, 0);
Delay_Time_Ctrl(30);
Delay_Time_Ctrl(110);
RTE_GPIO_Set_Level(VCC_33_EN_MCU, 0);
RTE_GPIO_Set_Level(VCC1V2_AMT_EN, 0);
RTE_GPIO_Set_Level(MCU_RSTB_LCD, 0);
RTE_GPIO_Set_Level(x1530_EN_MCU, 0);
}
static void AMT630H_AliveCounterMonitor(void)
......
#ifndef AMT_630H_H
#define AMT_630H_H
#include <stdint.h>
#include "Components.h"
typedef enum
{
EM_FLASH_CHECK_RESULT_NO_ACT = 0,
......@@ -27,9 +27,17 @@ typedef struct __attribute__((aligned(4)))
(((AMT630H_ANIMATION_TIME) / AMT630H_ANIMATION_PIC_NUM) - 5))
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
void Amt630hUartRecvData(uint16_t u16UARTData);
#endif
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
extern uint8_t UartRevBuff1[MCU_RX_630_UART_BUF_SIZE];
extern void mwAmt630hUartDMA_RecvData(void);
#endif
void AMT630H_Timer(unsigned char Tms);
void Delay_Time_Ctrl(unsigned long Tms);
void Amt630hUartRecvData(uint16_t u16UARTData);
void AMT630H_Animation_PlayProc(uint16_t PicIndex);
void AMT630H_RstCtrl(void);
void Amt630hInit(void);
......
......@@ -4,14 +4,27 @@
#include <stdint.h>
#include "UDS_ISO14229_Services.h"
#include "flash.h"
#include "Device\Cmsemicon\BAT32A279\RTE\UART\RTE_UART.h"
#include "Components.h"
#define NULL 0
extern uint8_t UartRevBuff[0x1000];
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
extern uint8_t UartRevBuff[0x1000];
#endif
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
extern uint8_t UartRevBuff[MCU_RX_630_UART_BUF_SIZE];
#endif
extern uint32_t UartRevCnts;
uint8_t *GetUartRecvData(uint32_t *UartRecvBufLen, uint32_t *UartRecvPos)
{
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
*UartRecvBufLen = 0x1000;
#endif
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
*UartRecvBufLen = MCU_RX_630_UART_BUF_SIZE;
#endif
*UartRecvPos = UartRevCnts;
return UartRevBuff;
}
......@@ -27,7 +40,7 @@ void DisplayNum(uint8_t page, DISPLAY_NUM_ST *pNumData, int32_t NumVal)
uint8_t i = 0;
int32_t TmpNum;
uint16_t tmpIndex = 0;
uint8_t PointFrontRearBlank = 2;
// uint8_t PointFrontRearBlank = 2;
uint16_t DotPosition = 0;
uint8_t DotInterval = 0;
uint16_t NumberList[20];
......
......@@ -7,6 +7,7 @@ typedef unsigned short uint16_t;
typedef short int16_t;
typedef unsigned char uint8_t;
#define AMT_NULL 0
#define UART_UPDATE_ACK_NONE 0
#define UART_UPDATE_ACK_OK 1
......@@ -40,11 +41,7 @@ extern void UartSendData(uint8_t *data, uint32_t len);
extern void AnalysisUartData(void);
/* Generate Function end */
/* Sound */
#define SOUND_STATE_FREE 0
#define SOUND_STATE_BUSY 1
#define WAV_TEST_NUM_TIC 0xfd
#define WAV_TEST_NUM_TOC 0xfe
/* Lcd Parameter */
enum {
AUDIO_FREQ_NONE,
AUDIO_FREQ_8K,
......@@ -61,13 +58,12 @@ enum {
AUDIO_FREQ_192K,
AUDIO_FREQ_TOTAL,
};
extern void PackedTransfer_SoundPlay(uint8_t Channel, uint8_t WavNum, uint16_t PlayTimes, uint16_t MinTimes, uint8_t Volume);
extern void PackedTransfer_SoundStop(uint8_t Channel);
extern void PackedTransfer_SoundChangeVolume(uint8_t Channel, uint8_t Volume);
extern uint8_t GetSoundChannelSta(uint8_t Channel);
/* Sound end */
typedef enum {
AMT630_UART1 = 1,
AMT630_UART2,
AMT630_UART3,
} AMT630_UART_CH_TYPE;
/* Lcd Parameter */
#define LCD_WIRING_MODE_RGB 0
#define LCD_WIRING_MODE_RBG 1
#define LCD_WIRING_MODE_GRB 2
......@@ -77,6 +73,7 @@ extern uint8_t GetSoundChannelSta(uint8_t Channel);
#define LCD_INTERFACE_TTL 0
#define LCD_INTERFACE_LVDS 1
#define LCD_INTERFACE_MIPI 2
#define LCD_WIRING_BIT_ORDER_MSB 0
#define LCD_WIRING_BIT_ORDER_LSB 1
......@@ -91,12 +88,13 @@ extern uint8_t GetSoundChannelSta(uint8_t Channel);
#define VIDEO_IN_NTSC 1
#define VIDEO_IN_PAL 2
#pragma pack(1)
typedef struct {
uint16_t LcdWidth;
uint16_t LcdHeight;
uint8_t LcdVideoInputValid : 2;
uint8_t LcdBpp : 6;
uint8_t Ark7116ResetPin;
uint8_t Ark7116ResetPin;
uint8_t LcdInterfaceType : 4;
uint8_t LcdWiringMode : 4;
uint8_t LcdWiringBitOrder : 2;
......@@ -112,12 +110,27 @@ typedef struct {
uint32_t LcdClkFreq;
uint8_t SoundFreq;
uint8_t SoundChannelNum;
} LCD_TFT_SOUND_PARA_ST;
}LCD_TFT_PARA_ST;
extern void SetLcdSoundParameter(LCD_TFT_SOUND_PARA_ST *pData);
typedef struct {
uint32_t MipiClkFreq;
uint8_t MipiNpPolarityInverse;
uint8_t MipiLane;
uint8_t MipiDisplaymMode;
}LCD_TFT_MIPI_PARA_ST;
#define RN6752_INPUT_TYPE_NONE 0
#define RN6752_INPUT_TYPE_CVBS_NTSC 1
#define RN6752_INPUT_TYPE_CVBS_PAL 2
#define RN6752_INPUT_TYPE_AHD_720P_25 3
#define RN6752_INPUT_TYPE_AHD_720P_30 4
typedef struct {
uint8_t Rn6752InputType;
uint8_t Rn6752ResetPin;
uint8_t Rn6752Address;
}RN6752_PARA_ST;
#pragma pack()
extern void SetLcdParameter(LCD_TFT_PARA_ST *pData, LCD_TFT_MIPI_PARA_ST *pDataMipi, AMT630_UART_CH_TYPE Amt630UartCh, RN6752_PARA_ST *pDataRn6752);
/* Lcd Parameter end */
/* Amt Software */
......@@ -235,7 +248,7 @@ typedef enum {
TFT_ROT_270,
} TFT_ROT_TYPE;
#define TEXT_ROT_SCALE (r, s) ((((r) & 0xffff) << 16) | ((s) & 0xffff))
#define TEXT_ROT_SCALE(r, s) ((((r) & 0xffff) << 16) | ((s) & 0xffff))
#define TEXT_COLOR(r, g, b, a) ((((r) & 0xff) << 24) | (((g) & 0xff) << 16) | (((b) & 0xff) << 8) | ((a) & 0xff))
#define TEXT_LINE_OFFSET(x, y) ((((x) & 0xffff) << 16) | ((y) & 0xffff))
......@@ -253,7 +266,9 @@ extern void SetPageText(GRAPHICS_PAGE_ENUM page, uint16_t LabelNum, int16_t PosX
extern void SetPagePointerPic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePointerSePic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN);
extern void SetPagePointerTrackPic(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, uint16_t PicIndex);
extern void SetPagePointerTrackActiceArea(GRAPHICS_PAGE_ENUM page, POINTER_ENUM PointN, int16_t ActivePosX, int16_t ActivePosY, uint16_t ActiveW, uint16_t ActiveH);
extern void SetPageSliderNumPic(GRAPHICS_PAGE_ENUM page, uint8_t SliderNum);
extern void SetPageSliderImagePic(GRAPHICS_PAGE_ENUM page, uint8_t SliderImageNum);
extern void PackedTransfer_PicDirectDraw(uint32_t PicIndex, uint8_t Valid);
extern void PackedTransfer_BgJpg(uint32_t PicIndex);
......@@ -319,21 +334,97 @@ extern void PackedTransfer_SetTftIoMode(uint8_t st); /*st 0:normal gpio, 1:TFT i
/* Set tft io mode end */
/* Slider Num */
extern void PackedTransfer_SliderNumData(uint8_t n, uint8_t *data, uint32_t len);
#pragma pack(1)
#define SLIDER_NUM_MAX 300 /* The maximum value is 300 */
typedef struct {
uint8_t SliderNum;
uint8_t SliderValid;
uint8_t ZoomOutMax;
uint8_t AlphaMin;
float DestVal;
float CurVal;
int16_t PosX;
int16_t PosY;
int16_t Interval;
uint16_t PicNum;
uint16_t DampingVal;
uint16_t PicIndex[SLIDER_NUM_MAX];
} SLIDER_NUMBER_PARA_ST;
#pragma pack()
extern void PackedTransfer_SliderNumData(uint8_t n, uint8_t *data, uint32_t len); /* PackedTransfer_SliderNumData(0, &SliderNumParaData, sizeof (SLIDER_NUMBER_PARA_ST)); */
extern void PackedTransfer_SliderNumDestVal(uint8_t n, uint16_t val, uint8_t ForceUpdate, uint8_t DisplayValid);
/* Slider Num end */
/* Slider Image */
#pragma pack(1)
#define SLIDER_IMAGE_PIC_MAX 5 /* The maximum value is 5 */
enum {
SLIDER_IMAGE_TYPE_HORIZONTAL_LEFT_TO_RIGHT,
SLIDER_IMAGE_TYPE_HORIZONTAL_RIGHT_TO_LEFT,
SLIDER_IMAGE_TYPE_VERTICAL_UP_TO_DOWN,
SLIDER_IMAGE_TYPE_VERTICAL_DOWN_TO_UP,
};
typedef struct {
uint8_t SliderType;
uint8_t SliderValid;
uint8_t Reserve1;
uint8_t Reserve2;
float DestVal;
float CurVal;
int16_t PosX;
int16_t PosY;
int16_t Interval;
uint16_t DampingVal;
uint16_t PicIndex[SLIDER_IMAGE_PIC_MAX];
} SLIDER_IMAGE_PARA_ST;
#pragma pack()
extern void PackedTransfer_SliderImageData(uint8_t n, uint8_t *data, uint32_t len); /* The setting range of parameter n is 0~9, PackedTransfer_SliderImageData(0, &SliderImageParaData, sizeof (SLIDER_IMAGE_PARA_ST)); */
extern void PackedTransfer_SliderImageDestVal(uint8_t n, uint16_t val, uint8_t ForceUpdate, uint8_t DisplayValid);
/* Slider Num end */
enum {NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, NUM_POINT, NUM_LINE};
typedef struct {
const uint16_t *NumList;
uint16_t NumListLength;
int16_t NumInterval;
int16_t PointNumInterval;
int16_t PointNumCoorX;
int16_t LineCoorX;
int16_t x;
int16_t y;
int16_t Number1TotalLattice;
int16_t Number1UseLattice;
int16_t Number7TotalLattice;
int16_t Number7UseLattice;
uint8_t DecimalNum;
uint8_t MinDigits;
} DISPLAY_NUM_ST;
typedef struct {
const uint16_t *CharacterList;
uint16_t CharacterLength;
int16_t CharacterInterval;
int16_t PointCharacterInterval;
int16_t PointCharacterCoorX;
int16_t LineCoorX;
int16_t x;
int16_t y;
int16_t Number1TotalLattice;
int16_t Number1UseLattice;
int16_t Number7TotalLattice;
int16_t Number7UseLattice;
}DISPLAY_CHARACTER_ST;
typedef enum {
CHAR_LEFT_JUSTIFYING = 0,
CHAR_RIGHT_JUSTIFYING,
TOTAL_JUSTIFYING_TYPE,
}CHAR_JUSTIFYING_TYPE;
extern void DisplayNum(uint8_t page, DISPLAY_NUM_ST *pNumData, int32_t NumVal);
extern void DisplayCharacter(uint8_t page, DISPLAY_CHARACTER_ST *pCharacterData, char* Character, uint8_t JustifyingType);
/*
note:
......@@ -454,7 +545,7 @@ typedef struct
typedef struct
{
uint8_t BlueToothSignalSate;
uint8_t BlueToothPhoneSate;//incalloutcall
uint8_t BlueToothPhoneSate;//incall¡¢outcall
uint8_t BlueToothPhoneName[100];
uint8_t PhoneNumber[20];
uint16_t PhoneBookTotalCount;
......@@ -478,6 +569,37 @@ typedef struct
uint8_t RoadName[100];
uint32_t distance;
}_NavigationData_struct;
enum BLUE_HELMET_CONNECT_STATE
{
BLUE_HELMET_UNSUPPORTED = 0u,
BLUE_HELMET_STANDBY,
BLUE_HELMET_CONNECTING,
BLUE_HELMET_CONNECTED,
BLUE_HELMET_PASUSED,
BLUE_HELMET_STREAMING,
};
enum BLUE_HELMET_REQUIRE_STATE
{
BLUE_HELMET_SCAN_END = 0u,
BLUE_HELMET_SCAN_STATE,
BLUE_HELMET_MAIN_REQUIRE_STATE,
BLUE_HELMET_MAIN_REQUIRE_END,
BLUE_HELMET_SECOND_REQUIRE_STATE,
BLUE_HELMET_SECOND_REQUIRE_END,
};
typedef struct
{
uint8_t MainheadsetState;
uint8_t SecondheadsetState;
uint8_t MainMacAddressSuccess[20];
uint8_t secondMacAddressSuccess[20];
uint8_t Name[50];
uint8_t ScanMacAddress[20];
}_BLUE_HELMET_DATA_struct;
typedef struct
{
uint16_t x;
......@@ -500,8 +622,8 @@ typedef struct
typedef struct{
uint8_t blearn;
uint8_t strmac[6];
uint8_t temperature;
uint16_t PressureVal;
int temperature;
}ec_stru_TirePressure;
extern ec_stru_TirePressure ec_stru_pressure;
......@@ -510,6 +632,7 @@ extern uint8_t UUID_Received;
extern _BlueToothPhoneData BlueToothPhoneData;
extern _GPS_TIME GPS_Time;
extern _NavigationData_struct NavigationData_st;
extern _BLUE_HELMET_DATA_struct BlueHelmetDate;
extern void PackedTransfer_DisplayPhoneMirrorQRcode(uint8_t data,_PICID_Struct PICID_OBJ);
extern void PackedTransfer_BlueTooth_DataSet(uint8_t data);
extern void PackedTransfer_GetPhoneBookCmd(void);
......@@ -531,5 +654,6 @@ extern void SetBlueToothName(uint8_t *data,uint8_t len);
extern void SetTaskbarHeight(uint16_t height);
extern void Set_Pro_Unique_Identifier(uint8_t *data,uint8_t len);
extern uint8_t GetUpdate(void);
extern void SetBluetoothhelmet(uint8_t data, uint8_t *MacAddress);
extern uint8_t GetWifiConncetState(void);
#endif
#ifndef COMPONENTS_H__
#define COMPONENTS_H__
/* mcu receive 630 data mode */
#define MCU_RX_630_MODE_UART_INTERRUPT 0
#define MCU_RX_630_MODE_UART_DMA 1
#define MCU_RX_630_MODE MCU_RX_630_MODE_UART_DMA
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
#define MCU_RX_630_UART_BUF_SIZE 0x800
#define UART_USE_DMA 1
#define USE_DMA_AREA 4
#endif
#include "Simulated_IIC_master\Simulated_IIC_master.h"
#include "System_Monitor\System_Monitor.h"
#include "Key\Key_user.h"
......@@ -40,6 +54,15 @@
#include "Application\BlueTooth.h"
#include "cgc.h"
#include "UDS\UDS_ISO14229_Services.h"
#include "PowerManagement\PowerManag_user.h"
#include "PowerManagement\PowerManagement.h"
#include "Can_User.h"
#include "Line_in\Line_In_user.h"
#include "Mileage\Services_Mileage_User.h"
#include "Mileage\Services_Mileage.h"
#include "Eeprom\eeManager_Interface.h"
#include "Protocol_User.h"
#include "FaultCode.h"
#endif
......@@ -24,7 +24,7 @@ void Key_Operation_Left(Key_Event_en_t enKeyEvent)//选择
case KEY_EVENT_LONG_PRESS_1: //2
if((Get_Dis_OdoAndTrip() == 1) && (Get_ActualVechileSpeed() == 0))
{
Data_Clear_Trip(0);
Data_Clear_Trip(EM_TRIP_A);
}
Key_Clear_Time();
break;
......@@ -549,4 +549,4 @@ uint8_t Get_Dis_Bluetooth_Open_Close(void)
uint8_t Get_Dis_Language(void)
{
return MenuData.Language; //0中文,1英文
}
\ No newline at end of file
}
......@@ -426,4 +426,8 @@ void Menu_User_WAKEUP(void);
/*-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------*/
void Menu_Logic_Operation_Clock_Hour_Tenb_Set(Menu_Key_en_t enKeyType);
void Menu_Logic_Operation_Clock_Hour_Bit_Set(Menu_Key_en_t enKeyType);
void Menu_Logic_Operation_Clock_Min_Tenb_Set(Menu_Key_en_t enKeyType);
void Menu_Logic_Operation_Clock_Min_Bit_Set(Menu_Key_en_t enKeyType);
#endif
......@@ -3,7 +3,7 @@
#include "Mileage\Services_Mileage.h"
#include "Eeprom\eepromManage.h"
#include "CommonInterface.h"
#include "Key\Key_user.h"
__align(4)
......
#include "PowerManagement.h"
#include "Components.h"
#include "FaultCode.h"
#include "System_Monitor\System_Monitor_User.h"
#include "dma.h"
RTC_Information_st_t g_stRTCInformation;
......@@ -43,11 +45,37 @@ static void Power_KL30_Init(void)
UART_Channel_Config_st_t loc_config;
eeprom_StoreInfo_Init(); //50us
loc_config.u32UARTChEn = 1U;
loc_config.u32UARTbps = 115200U;
loc_config.u32UARTbps = 500000U;
loc_config.pfnUARTConfirmCallBack = NULL;
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
loc_config.pfnUARTReadMsgCallBack = Amt630hUartRecvData;
#endif
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
loc_config.pfnUARTReadMsgCallBack = NULL;
#endif
UART_DeInit(UART2); //50us
RTE_UART_Init(UART_CH2, &loc_config); //68.35ms
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
DMA_InitTypeDef DMA_InitTypeDef_Struct;
DMA_InitTypeDef_Struct.DMA_Vector = DMA_VECTOR_SR2;//指定串口2为启动源
DMA_InitTypeDef_Struct.DMA_CtrlId = 4;//指定启动源在DMA控制数据区的ID
DMA_InitTypeDef_Struct.DMA_SrcAddr =(uint32_t)&SCI1->SCI.RXD2 /*0x40041512*/;//传送源地址
DMA_InitTypeDef_Struct.DMA_DstAddr = (uint32_t)UartRevBuff1;//传送目标地址
DMA_InitTypeDef_Struct.DMA_BufferSize = MCU_RX_630_UART_BUF_SIZE;//0x800的buffer,也是DMA重复循环一轮传输数据的次数
DMA_InitTypeDef_Struct.DMA_SrcInc = 0;//传送源地址不自增,DMACR寄存器,MODE位为“1”(重复模式)并且RPTSEL位为“1”(传送源为重复区)时,SAMOD位的设置无效。
DMA_InitTypeDef_Struct.DMA_DstInc = 0;//传送目标地址自增,DMACR寄存器,MODE位为“1”(重复模式)并且RPTSEL位为“0”(传送目标为重复区)时,DAMOD位的设置无效。
DMA_InitTypeDef_Struct.DMA_DataSize = DMA_DataSize_Byte;//传送数据长度为8位
DMA_InitTypeDef_Struct.DMA_Mode = DMA_Mode_Repeat;//重复模式
DMA_InitTypeDef_Struct.DMA_RepeatAreaAddr = DMA_RepeatAreaAddr_Dst;//DMACR寄存器,RPTSEL位为“0”(传送目标为重复区)
DMA_InitTypeDef_Struct.DMA_RepeatInt = DMA_RepeatInt_Disable;//禁止发生中断
DMA_InitTypeDef_Struct.DMA_ChainTrans = DMA_ChainTrans_None;//禁止链传送
DMA_Init(&DMA_InitTypeDef_Struct);
DMA_Start(DMA_VECTOR_SR2);
#endif
Common_DataInit(); //50us
Analog_Signal_Conv_Init(); //150us
Sys_KL30_Init(); //275.55ms
......@@ -107,11 +135,20 @@ static void Power_Wakeup_Init(void)
BackLight_WakeUp_Init();
RTE_UART_Sleep_Init(UART_CH2);
loc_config.u32UARTChEn = 1U;
loc_config.u32UARTbps = 115200U;
loc_config.u32UARTbps = 500000U;
loc_config.pfnUARTConfirmCallBack = NULL;
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
loc_config.pfnUARTReadMsgCallBack = Amt630hUartRecvData;
#endif
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
loc_config.pfnUARTReadMsgCallBack = NULL;
#endif
UART_DeInit(UART2);
RTE_UART_Init(UART_CH2, &loc_config); /* 配置串口,630H上电发送0x0D,但是底板没回复 */
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
DMA_Start(DMA_VECTOR_SR2);
#endif
Amt630hInit();
Telltales_Init();
Key_KL30_Init_EXample();
......@@ -167,10 +204,13 @@ static void Power_Sleep_Init(void)
TMM1_Stop();
TMM_All_Stop();
RTE_ADC_DeInit();
Gpio_Init(Gpio_Sleep_Init);
AMT630H_Sleep();
Gpio_Init(Gpio_Sleep_Init);
Analog_Signal_Conv_Stop();
RTE_UART_Sleep_Init(UART_CH2);
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
DMA_Stop(DMA_VECTOR_SR2);
#endif
CGC_HSI_CFG_AS_FCLK(); /* 配置时钟生成控制器(cgc)以将内部高速振荡器(HSI)作为CPU系统时钟(FCLK)以及可能的其他硬件电路的时钟源。 */
//SystemCoreClockUpdate(); /* 更新时钟频率,暂时用不上,先注释 */
RTE_DEEPSLEEP_Enable();
......@@ -222,7 +262,7 @@ static Power_Status_em Power_Stay_Protect(void)
{
Power_Status_em u8PowerSts;
// static uint8_t i;
static uint8_t Delaycnt;
// static uint8_t Delaycnt;
/* 关闭所有外设,坪保留AD采集,电溝状思切�? */
......
......@@ -39,8 +39,8 @@ static Tellib_uint16_t LED_Bluetooth_Judgement(void);
static void LED_Bluetooth_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_E_Judgement(void);
static void LED_E_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_S_Judgement(void);
static void LED_S_Execution(Tellib_uint16_t led_status);
// static Tellib_uint16_t LED_S_Judgement(void);
// static void LED_S_Execution(Tellib_uint16_t led_status);
uint8_t u8CanId401Flag = 0;
__align(4)
const LED_Attribute_st LED_Attribute [ LED_Max ] = {
......
......@@ -221,7 +221,7 @@ void RTE_Calc_Freq(uint8_t u8ch)
uint8_t i = 0U;
uint16_t u16TDR;
uint16_t u16TSR;
uint8_t u8RollingCh = 0;
// uint8_t u8RollingCh = 0;
if((u8ch < 0) || (u8ch >= RTE_TIM40_CH_SUM))
{
......@@ -244,7 +244,7 @@ void RTE_Calc_Freq(uint8_t u8ch)
case RTE_TIM40_CH1:
u16TDR = TM40->TDR[1U];
u16TSR = TM40->TSR[1U];
u8RollingCh = 0U;
// u8RollingCh = 0U;
break;
case RTE_TIM40_CH2:
u16TDR = TM40->TDR[2U];
......
......@@ -3,6 +3,7 @@
#include "cgc.h"
#include "gpio.h"
#include "isr.h"
#include <string.h>
uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *penUARTCfg);
......@@ -200,7 +201,9 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
stUARTCh2Cfg.pfnUARTReadMsgCallBack = penUARTCfg->pfnUARTReadMsgCallBack;
ISR_Register(ST2_IRQn, UART_CH2_TX_ISR); //串口2发送中断服务路径注册
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_INTERRUPT)
ISR_Register(SR2_IRQn, UART_CH2_RX_ISR); //串口2接收中断服务路径注册
#endif
ret = UART_Init(UART2, &stUART_InitStruct);
break;
......
......@@ -3,6 +3,7 @@
#include "stdint.h"
#include "uart.h"
#include "Components.h"
/***************************************************************/
/***************************************************************/
......
......@@ -37,6 +37,7 @@ extern void Sys_Scheduler_ISR(void);
extern void Sys_Pseudo_Real_Time_Tasks(void);
extern void Sys_2ms_Tasks(void);
extern void Sys_5ms_Tasks(void);
extern void Sys_10ms_Tasks(void);
extern void Sys_20ms_Tasks(void);
extern void Sys_50ms_Tasks(void);
......
......@@ -12,6 +12,9 @@ void Sys_Pseudo_Real_Time_Tasks(void)
Power_Management_Service();
DoCAN_Communication_Service();
UDS_Server_Application_Service();
#if (MCU_RX_630_MODE == MCU_RX_630_MODE_UART_DMA)
mwAmt630hUartDMA_RecvData();
#endif
}
void Sys_2ms_Tasks(void)
......@@ -20,7 +23,7 @@ void Sys_2ms_Tasks(void)
Sys_Status_Update_Service();
Analog_Signal_Conv_Service();
AMT630H_Main();
Check_MCU_Info_in_630H();
// Check_MCU_Info_in_630H();
DoCAN_Timer_Update(2000u);
//Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);无外发
}
......@@ -81,6 +84,7 @@ void Sys_100ms_Tasks(void)
Get_DisTime_Service();
Fuel_Cal_Sevice(100u);
Services_Mileage_Callback();
Set_Pro_Unique_Identifier(MCU_PartNumber,sizeof(MCU_PartNumber));
// Data_Mileage_Clear();
// RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_High);
//BackLight_Process();
......@@ -132,4 +136,4 @@ void Sys_Exact_50us_Tasks(void)
// PORT->PCLR0 = (1<<3);
// g_u8GPIOTurnOver = 1U;
// }
}
\ No newline at end of file
}
......@@ -29,7 +29,7 @@
/******************************************************************************
program version
*******************************************************************************/
#define SWV 0x110 // 0x100 = 1.00 software version 软件版本号
#define SWV 0x100 // 0x100 = 1.00 software version 软件版本号
#define HWV 0x120 // 0x100 = 1.00 hardware version 硬件版本号
#define BTV 0x105 // 0x100 = 1.00 bootloader version boot程序版本号
......@@ -349,6 +349,7 @@ typedef struct
// uint8_t fill_data[17]; /* 用于保证该结构体长度是4的倍数 */
} Diag_Write_Data_t;
extern Diag_Write_Data_t Diag_Write_Data;
extern uint8_t MCU_PartNumber[20];
extern void UDS_Service_10_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void UDS_Service_11_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
......
HJ_7500-02TY0000_BootApp_S1.10_F1.10_241129.hex
此文件是完整版烧录文件
HJ_7500-02TY0000_Flash_F1.10_FullBin_241129.bin
此文件是ota升级文件
\ No newline at end of file
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