Commit 6db37e83 authored by 陈家乐's avatar 陈家乐

Merge branch 'dev' into 'release'

Dev

See merge request !129
parents 3f1af545 6366e2a7
...@@ -163,7 +163,7 @@ void Gpio_Init(_GpioUser_Enum InitMode) ...@@ -163,7 +163,7 @@ void Gpio_Init(_GpioUser_Enum InitMode)
/*为满足I2C时序要求*/ /*为满足I2C时序要求*/
RTE_GPIO_Config(RTE_GPIO_PORT12_PIN00, GpioOut_High);//5V切电 RTE_GPIO_Config(RTE_GPIO_PORT12_PIN00, GpioOut_High);//5V切电
RTE_GPIO_Config(RTE_GPIO_PORT06_PIN02, GpioOut_Low); //EE存储SCL RTE_GPIO_Config(RTE_GPIO_PORT06_PIN02, GpioOut_Low); //EE存储SCL
Gen_TimeDelay(100 * 1000u, 50u); //Gen_TimeDelay(100 * 1000u, 50u);
for (i = 0; i < Gpio_Max; i++) for (i = 0; i < Gpio_Max; i++)
{ {
RTE_GPIO_Config(KL30_Init_GpioConfig[i].u16PinNum, KL30_Init_GpioConfig[i].u16PinMode); RTE_GPIO_Config(KL30_Init_GpioConfig[i].u16PinNum, KL30_Init_GpioConfig[i].u16PinMode);
......
...@@ -4539,6 +4539,7 @@ void Checkself_SEG_Display(void) ...@@ -4539,6 +4539,7 @@ void Checkself_SEG_Display(void)
uint8_t min = 0; uint8_t min = 0;
uint32_t ODO = 0; uint32_t ODO = 0;
uint32_t Mileage = 0; uint32_t Mileage = 0;
uint16_t speedCount = 0;
if (Common_GetIgnOnTime() >= 200) if (Common_GetIgnOnTime() >= 200)
{ {
......
...@@ -90,7 +90,7 @@ void BU98R10_CHIP0_SET_SD_LEVEL(uint8_t Level) ...@@ -90,7 +90,7 @@ void BU98R10_CHIP0_SET_SD_LEVEL(uint8_t Level)
PORT->PM0 &= ~(1<<2); PORT->PM0 &= ~(1<<2);
PORT->PSET0 = (1<<2); PORT->PSET0 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
...@@ -100,7 +100,7 @@ void BU98R10_CHIP0_SET_SD_LEVEL(uint8_t Level) ...@@ -100,7 +100,7 @@ void BU98R10_CHIP0_SET_SD_LEVEL(uint8_t Level)
// PORT->PM0 &= ~(1<<2); // PORT->PM0 &= ~(1<<2);
PORT->PM0 &= ~(1<<2); PORT->PM0 &= ~(1<<2);
PORT->PCLR0 = (1<<2); PORT->PCLR0 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP1_SET_SD_LEVEL(uint8_t Level); void BU98R10_CHIP1_SET_SD_LEVEL(uint8_t Level);
...@@ -114,7 +114,7 @@ void BU98R10_CHIP1_SET_SD_LEVEL(uint8_t Level) ...@@ -114,7 +114,7 @@ void BU98R10_CHIP1_SET_SD_LEVEL(uint8_t Level)
// PORT->PM7 &= ~(1<<2); // PORT->PM7 &= ~(1<<2);
PORT->PM7 &= ~(1<<2); PORT->PM7 &= ~(1<<2);
PORT->PSET7 = (1<<2); PORT->PSET7 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
...@@ -124,7 +124,7 @@ void BU98R10_CHIP1_SET_SD_LEVEL(uint8_t Level) ...@@ -124,7 +124,7 @@ void BU98R10_CHIP1_SET_SD_LEVEL(uint8_t Level)
// PORT->PM7 &= ~(1<<2); // PORT->PM7 &= ~(1<<2);
PORT->PM7 &= ~(1<<2); PORT->PM7 &= ~(1<<2);
PORT->PCLR7 = (1<<2); PORT->PCLR7 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP0_SET_CSB_LEVEL(uint8_t Level); void BU98R10_CHIP0_SET_CSB_LEVEL(uint8_t Level);
...@@ -138,7 +138,7 @@ void BU98R10_CHIP0_SET_CSB_LEVEL(uint8_t Level) ...@@ -138,7 +138,7 @@ void BU98R10_CHIP0_SET_CSB_LEVEL(uint8_t Level)
// PORT->PM0 &= ~(1<<3); // PORT->PM0 &= ~(1<<3);
PORT->PM0 &= ~(1<<3); PORT->PM0 &= ~(1<<3);
PORT->PSET0 = (1<<3); PORT->PSET0 = (1<<3);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
...@@ -148,7 +148,7 @@ void BU98R10_CHIP0_SET_CSB_LEVEL(uint8_t Level) ...@@ -148,7 +148,7 @@ void BU98R10_CHIP0_SET_CSB_LEVEL(uint8_t Level)
// PORT->PM0 &= ~(1<<3); // PORT->PM0 &= ~(1<<3);
PORT->PM0 &= ~(1<<3); PORT->PM0 &= ~(1<<3);
PORT->PCLR0 = (1<<3); PORT->PCLR0 = (1<<3);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP1_SET_CSB_LEVEL(uint8_t Level); void BU98R10_CHIP1_SET_CSB_LEVEL(uint8_t Level);
...@@ -162,7 +162,7 @@ void BU98R10_CHIP1_SET_CSB_LEVEL(uint8_t Level) ...@@ -162,7 +162,7 @@ void BU98R10_CHIP1_SET_CSB_LEVEL(uint8_t Level)
// PORT->PM7 &= ~(1<<1); // PORT->PM7 &= ~(1<<1);
PORT->PM7 &= ~(1<<1); PORT->PM7 &= ~(1<<1);
PORT->PSET7 = (1<<1); PORT->PSET7 = (1<<1);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
...@@ -172,7 +172,7 @@ void BU98R10_CHIP1_SET_CSB_LEVEL(uint8_t Level) ...@@ -172,7 +172,7 @@ void BU98R10_CHIP1_SET_CSB_LEVEL(uint8_t Level)
// PORT->PM7 &= ~(1<<1); // PORT->PM7 &= ~(1<<1);
PORT->PM7 &= ~(1<<1); PORT->PM7 &= ~(1<<1);
PORT->PCLR7 = (1<<1); PORT->PCLR7 = (1<<1);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP0_SET_SCL_LEVEL(uint8_t Level); void BU98R10_CHIP0_SET_SCL_LEVEL(uint8_t Level);
...@@ -186,7 +186,7 @@ void BU98R10_CHIP0_SET_SCL_LEVEL(uint8_t Level) ...@@ -186,7 +186,7 @@ void BU98R10_CHIP0_SET_SCL_LEVEL(uint8_t Level)
// PORT->PM0 &= ~(1<<4); // PORT->PM0 &= ~(1<<4);
PORT->PM0 &= ~(1<<4); PORT->PM0 &= ~(1<<4);
PORT->PSET0 = (1<<4); PORT->PSET0 = (1<<4);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
...@@ -196,7 +196,7 @@ void BU98R10_CHIP0_SET_SCL_LEVEL(uint8_t Level) ...@@ -196,7 +196,7 @@ void BU98R10_CHIP0_SET_SCL_LEVEL(uint8_t Level)
// PORT->PM0 &= ~(1<<4); // PORT->PM0 &= ~(1<<4);
PORT->PM0 &= ~(1<<4); PORT->PM0 &= ~(1<<4);
PORT->PCLR0 = (1<<4); PORT->PCLR0 = (1<<4);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP1_SET_SCL_LEVEL(uint8_t Level); void BU98R10_CHIP1_SET_SCL_LEVEL(uint8_t Level);
...@@ -210,7 +210,7 @@ void BU98R10_CHIP1_SET_SCL_LEVEL(uint8_t Level) ...@@ -210,7 +210,7 @@ void BU98R10_CHIP1_SET_SCL_LEVEL(uint8_t Level)
// PORT->PM7 &= ~(1<<0); // PORT->PM7 &= ~(1<<0);
PORT->PM7 &= ~(1<<0); PORT->PM7 &= ~(1<<0);
PORT->PSET7 = (1<<0); PORT->PSET7 = (1<<0);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
...@@ -220,7 +220,7 @@ void BU98R10_CHIP1_SET_SCL_LEVEL(uint8_t Level) ...@@ -220,7 +220,7 @@ void BU98R10_CHIP1_SET_SCL_LEVEL(uint8_t Level)
// PORT->PM7 &= ~(1<<0); // PORT->PM7 &= ~(1<<0);
PORT->PM7 &= ~(1<<0); PORT->PM7 &= ~(1<<0);
PORT->PCLR7 = (1<<0); PORT->PCLR7 = (1<<0);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP0_SET_SD_DIR(uint8_t Dir); void BU98R10_CHIP0_SET_SD_DIR(uint8_t Dir);
...@@ -233,14 +233,14 @@ void BU98R10_CHIP0_SET_SD_DIR(uint8_t Dir) ...@@ -233,14 +233,14 @@ void BU98R10_CHIP0_SET_SD_DIR(uint8_t Dir)
// PORT->PM0 &= ~(1<<2); // PORT->PM0 &= ~(1<<2);
// RTE_GPIO_Config(BU98R10_CHIP0_SD, RTE_GPIO_DIR_OUT | RTE_GPIO_LEVEL_HIGH); // RTE_GPIO_Config(BU98R10_CHIP0_SD, RTE_GPIO_DIR_OUT | RTE_GPIO_LEVEL_HIGH);
PORT->PSET0 = (1<<2); PORT->PSET0 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
//RTE_GPIO_Config(BU98R10_CHIP0_SD, RTE_GPIO_DIR_IN); //RTE_GPIO_Config(BU98R10_CHIP0_SD, RTE_GPIO_DIR_IN);
// PORT->PM0 |= (1<<2); // PORT->PM0 |= (1<<2);
PORT->PCLR0 = (1<<2); PORT->PCLR0 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
void BU98R10_CHIP1_SET_SD_DIR(uint8_t Dir); void BU98R10_CHIP1_SET_SD_DIR(uint8_t Dir);
...@@ -253,14 +253,14 @@ void BU98R10_CHIP1_SET_SD_DIR(uint8_t Dir) ...@@ -253,14 +253,14 @@ void BU98R10_CHIP1_SET_SD_DIR(uint8_t Dir)
// PORT->P7 |= (1<<2); // PORT->P7 |= (1<<2);
// PORT->PM7 &= ~(1<<2); // PORT->PM7 &= ~(1<<2);
PORT->PSET7 = (1<<2); PORT->PSET7 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
else else
{ {
//RTE_GPIO_Config(BU98R10_CHIP1_SD, RTE_GPIO_DIR_IN); //RTE_GPIO_Config(BU98R10_CHIP1_SD, RTE_GPIO_DIR_IN);
// PORT->PM7 |= (1<<2); // PORT->PM7 |= (1<<2);
PORT->PCLR7 = (1<<2); PORT->PCLR7 = (1<<2);
NOP_DelayTime(BU98R10_NOP_TIME); //NOP_DelayTime(BU98R10_NOP_TIME);
} }
} }
...@@ -284,7 +284,7 @@ void BU98R10_Init(void) ...@@ -284,7 +284,7 @@ void BU98R10_Init(void)
#if BU98R10_WRITE_AT_SAME_TIME #if BU98R10_WRITE_AT_SAME_TIME
#if BU98R10_COLORFUL_LCD_MODE #if BU98R10_COLORFUL_LCD_MODE
Gen_TimeDelay(120 * 1000u, 50u); //Gen_TimeDelay(120 * 1000u, 50u);
BU98R10_All_Command_Write(BU98R10_CMD_SWRST); BU98R10_All_Command_Write(BU98R10_CMD_SWRST);
......
...@@ -20,14 +20,16 @@ unsigned char u8SimulatedIIC2ReceivedACK; ...@@ -20,14 +20,16 @@ unsigned char u8SimulatedIIC2ReceivedACK;
******************************************************************************/ ******************************************************************************/
void Simulated_IIC_2_Init(void) void Simulated_IIC_2_Init(void)
{ {
// Gen_TimeDelay(100 * 1000u, 1000u);
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN); // RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);
PORT->PM6 |= (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN); // RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1 //SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -45,23 +47,29 @@ void Simulated_IIC_2_Start(void) ...@@ -45,23 +47,29 @@ void Simulated_IIC_2_Start(void)
{ {
u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_INVALID_ACK; u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_INVALID_ACK;
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN); // RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1 //SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN); // RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);
PORT->PM6 |= (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW); // RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);
PORT->PM6 &= ~(1<<3);
PORT->PCLR6 = (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0 //SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0
//SIMULATED_IIC_2_OUT_SDA = 0; //SIMULATED_IIC_2_OUT_SDA = 0;
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW); // RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);
PORT->PM6 &= ~(1<<2);
PORT->PCLR6 = (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0 //SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0
//SIMULATED_IIC_2_SCL = 0; //SIMULATED_IIC_2_SCL = 0;
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -77,18 +85,22 @@ void Simulated_IIC_2_Stop(void) ...@@ -77,18 +85,22 @@ void Simulated_IIC_2_Stop(void)
{ {
u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_INVALID_ACK; u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_INVALID_ACK;
RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW); // RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);
PORT->PM6 &= ~(1<<3);
PORT->PCLR6 = (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0 //SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0
//SIMULATED_IIC_2_OUT_SDA = 0; //SIMULATED_IIC_2_OUT_SDA = 0;
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN); // RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);
PORT->PM6 |= (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN); // RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1 //SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -109,24 +121,33 @@ void Simulated_IIC_2_Transmit_Data(unsigned char Data) ...@@ -109,24 +121,33 @@ void Simulated_IIC_2_Transmit_Data(unsigned char Data)
//主机发送器件地址 //主机发送器件地址
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
/* 49:有提高效率的方法么 */
if (Data & 0x80) if (Data & 0x80)
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//sda线上是1 // RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//sda线上是1;
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1 //SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
else else
{ {
RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//sda线上是0 PORT->PM6 &= ~(1<<3);
PORT->PCLR6 = (1<<3);
// RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//sda线上是0
//SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0 //SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0
//SIMULATED_IIC_2_OUT_SDA = 0; //SIMULATED_IIC_2_OUT_SDA = 0;
} }
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);//读取sda上的数据 PORT->PM6 |= (1<<2);
// RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);//读取sda上的数据
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化 // PORT->PM6 &= ~(1<<3);
// PORT->PCLR6 = (1<<3);
// RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化
PORT->PM6 &= ~(1<<2);
PORT->PCLR6 = (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0 //SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0
//SIMULATED_IIC_2_SCL = 0; //SIMULATED_IIC_2_SCL = 0;
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -135,12 +156,16 @@ void Simulated_IIC_2_Transmit_Data(unsigned char Data) ...@@ -135,12 +156,16 @@ void Simulated_IIC_2_Transmit_Data(unsigned char Data)
} }
//主机接收应答 //主机接收应答
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//主机释放总线,从机在sda发送数据 // PORT->PM6 = (1<<3);
// RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//主机释放总线,从机在sda发送数据
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //设置SDA为输入状态 //SIMULATED_IIC_2_SDA_DIR = 0; //设置SDA为输入状态
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);//scl高电平,为了读取从机应答 // PORT->PM6 = (1<<3);
// RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);//scl高电平,为了读取从机应答
PORT->PM6 |= (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -148,6 +173,8 @@ void Simulated_IIC_2_Transmit_Data(unsigned char Data) ...@@ -148,6 +173,8 @@ void Simulated_IIC_2_Transmit_Data(unsigned char Data)
u8SimulatedIIC2ReceivedACK = RTE_GPIO_Get_Level(IIC_SDA_27030);//读取从机应答 u8SimulatedIIC2ReceivedACK = RTE_GPIO_Get_Level(IIC_SDA_27030);//读取从机应答
//u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_IN_SDA; //u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_IN_SDA;
// PORT->PM6 &= ~(1<<3);
// PORT->PCLR6 = (1<<3);
RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化 RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化
//SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0 //SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0
//SIMULATED_IIC_2_SCL = 0; //SIMULATED_IIC_2_SCL = 0;
...@@ -167,7 +194,8 @@ unsigned char Simulated_IIC_2_Receive_Data(void) ...@@ -167,7 +194,8 @@ unsigned char Simulated_IIC_2_Receive_Data(void)
Data = 0; Data = 0;
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//主机释放总线,从机在sda发送数据 // RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//主机释放总线,从机在sda发送数据
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //设置SDA为输入状态 //SIMULATED_IIC_2_SDA_DIR = 0; //设置SDA为输入状态
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -176,7 +204,8 @@ unsigned char Simulated_IIC_2_Receive_Data(void) ...@@ -176,7 +204,8 @@ unsigned char Simulated_IIC_2_Receive_Data(void)
{ {
Data <<= 1; Data <<= 1;
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);////scl拉高,读取从机发送到总线的数据 // RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);////scl拉高,读取从机发送到总线的数据
PORT->PM6 |= (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -185,7 +214,9 @@ unsigned char Simulated_IIC_2_Receive_Data(void) ...@@ -185,7 +214,9 @@ unsigned char Simulated_IIC_2_Receive_Data(void)
Data |= RTE_GPIO_Get_Level(IIC_SDA_27030);//读取从机数据 Data |= RTE_GPIO_Get_Level(IIC_SDA_27030);//读取从机数据
//Data |= SIMULATED_IIC_2_IN_SDA; //Data |= SIMULATED_IIC_2_IN_SDA;
RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化 // RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化
PORT->PM6 &= ~(1<<2);
PORT->PCLR6 = (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0 //SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0
//SIMULATED_IIC_2_SCL = 0; //SIMULATED_IIC_2_SCL = 0;
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
...@@ -210,22 +241,28 @@ void Simulated_IIC_2_Transmit_ACK(unsigned char ACK) ...@@ -210,22 +241,28 @@ void Simulated_IIC_2_Transmit_ACK(unsigned char ACK)
return; return;
if (ACK) if (ACK)
RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//用参数来确定是否发送应答信号 // RTE_GPIO_Config(IIC_SDA_27030,RTE_GPIO_DIR_IN);//用参数来确定是否发送应答信号
PORT->PM6 |= (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1 //SIMULATED_IIC_2_SDA_DIR = 0; //SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
else else
{ {
RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//用参数来确定是否发送应答信号 // RTE_GPIO_Config(IIC_SDA_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//用参数来确定是否发送应答信号
PORT->PM6 &= ~(1<<3);
PORT->PCLR6 = (1<<3);
//SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0 //SIMULATED_IIC_2_SDA_DIR = 1; //SDA输出0,此时SDA = 0
//SIMULATED_IIC_2_OUT_SDA = 0; //SIMULATED_IIC_2_OUT_SDA = 0;
} }
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);//scl高电平,为了读取从机应答 // RTE_GPIO_Config(IIC_SCL_27030,RTE_GPIO_DIR_IN);//scl高电平,为了读取从机应答
PORT->PM6 |= (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1 //SIMULATED_IIC_2_SCL_DIR = 0; //SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化 RTE_GPIO_Config(IIC_SCL_27030, RTE_GPIO_DIR_OUT|RTE_GPIO_LEVEL_LOW);//拉低scl,允许sda变化
PORT->PM6 &= ~(1<<2);
PORT->PCLR6 = (1<<2);
//SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0 //SIMULATED_IIC_2_SCL_DIR = 1; //SCL输出0,此时SCL = 0
//SIMULATED_IIC_2_SCL = 0; //SIMULATED_IIC_2_SCL = 0;
Simulated_IIC_2_Delay(); Simulated_IIC_2_Delay();
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/****************************************************************************** /******************************************************************************
1us延时校准 1us延时校准
******************************************************************************/ ******************************************************************************/
#define SIMULATED_IIC_2_FREQ_CALIBRATION 40U #define SIMULATED_IIC_2_FREQ_CALIBRATION 10U
/****************************************************************************** /******************************************************************************
确认信号 确认信号
......
...@@ -42,7 +42,6 @@ void PwrMemInit(void) ...@@ -42,7 +42,6 @@ void PwrMemInit(void)
{ {
PowerMemInit(&g_stPwrTasks); PowerMemInit(&g_stPwrTasks);
} }
extern uint8_t Power_KL30_Init_flag; extern uint8_t Power_KL30_Init_flag;
extern uint8_t AliveCount_KL30_ResettingFlag; extern uint8_t AliveCount_KL30_ResettingFlag;
static void Power_KL30_Init(void) static void Power_KL30_Init(void)
...@@ -50,21 +49,23 @@ static void Power_KL30_Init(void) ...@@ -50,21 +49,23 @@ static void Power_KL30_Init(void)
CAN_TX_Flag_Init(); CAN_TX_Flag_Init();
ClearODO_Flag = 0; ClearODO_Flag = 0;
Gpio_Init(Gpio_KL30_Init); Gpio_Init(Gpio_KL30_Init);
Simulated_IIC_2_Init(); Analog_Signal_Conv_Init();
eeprom_StoreInfo_Init();
Can_Init(); Can_Init();
Data_TPMS_KL30_Init ();
CAN_TX_Init(); CAN_TX_Init();
Sys_KL30_Init();
Simulated_IIC_2_Init();
eeprom_StoreInfo_Init();
Data_TPMS_KL30_Init ();
//CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable); //CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
DFlash_init(); DFlash_init();
Data_Read_DiagPara(); Data_Read_DiagPara();
Analog_Signal_Conv_Init();
BU98R10_Init(); BU98R10_Init();
//Uart0_Init(115200); //Uart0_Init(115200);
//Protocol_KL30_Wakeup_Init(); //Protocol_KL30_Wakeup_Init();
//BlueTooth_KL30_KL15_Wakeup_Init(); //BlueTooth_KL30_KL15_Wakeup_Init();
Sys_KL30_Init();
Checkself_Init(); Checkself_Init();
Data_Vehicle_Speed_KL30_Init(); Data_Vehicle_Speed_KL30_Init();
Data_Engine_Speed_KL30_Wakeup_Init(); Data_Engine_Speed_KL30_Wakeup_Init();
...@@ -112,6 +113,7 @@ static void Power_Wakeup_Init(void) ...@@ -112,6 +113,7 @@ static void Power_Wakeup_Init(void)
PowerIgnOffTimeLine = 0; PowerIgnOffTimeLine = 0;
//RTE_CLOCK_Select_Start(); //RTE_CLOCK_Select_Start();
Gpio_Init(Gpio_WakeUp_Init); Gpio_Init(Gpio_WakeUp_Init);
Gen_TimeDelay(100 * 1000u, 50u);
Simulated_IIC_2_Init(); Simulated_IIC_2_Init();
Can_Init(); Can_Init();
......
...@@ -312,13 +312,13 @@ ...@@ -312,13 +312,13 @@
#define CheckSumErr 7 // Checksum Error #define CheckSumErr 7 // Checksum Error
#define UnknownPartID 8 // Unknown Part ID #define UnknownPartID 8 // Unknown Part ID
#define SWV 0x130 // 0x100 = 1.00 software version 软件版本号 #define SWV 0x132 // 0x100 = 1.00 software version 软件版本号
#define HWV 0x103 // 0x100 = 1.00 hardware version 硬件版本号 #define HWV 0x103 // 0x100 = 1.00 hardware version 硬件版本号
#define BTV 0x100 // 0x100 = 1.00 bootloader version boot程序版本号 #define BTV 0x100 // 0x100 = 1.00 bootloader version boot程序版本号
#define INTLV 0x130 // 0x100 = 1.00 internal version 内部版本号 #define INTLV 0x132 // 0x100 = 1.00 internal version 内部版本号
#define PROG_Y 0x25 // 0x24 = 2024年, program year #define PROG_Y 0x25 // 0x24 = 2024年, program year
#define PROG_M 0x01 // 0x03 = 3月, program month #define PROG_M 0x03 // 0x03 = 3月, program month
#define PROG_D 0x07 // 0x19 = 19日, program day #define PROG_D 0x06 // 0x19 = 19日, program day
/****************************************************************************** /******************************************************************************
Bootloader Variable Bootloader Variable
......
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