Jelajahi Sumber

V5.2.5_20211202_1
1、修改I2C操作SDA方式,解决频繁封波导致电机异常的问题。

dail 3 tahun lalu
induk
melakukan
1a7e28cf6e

File diff ditekan karena terlalu besar
+ 1627 - 1627
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


TEMPAT SAMPAH
MDK-ARM/bin/MC_VR7500_V5r2r5_20211202_1.bin


TEMPAT SAMPAH
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 4 - 15
User/Src/I2C_Analog.c

@@ -2,23 +2,12 @@
 
 static void _SDA_IN(I2C_Handle_Struct_t* I2C_Handle)
 {
-  GPIO_InitTypeDef GPIO_InitStruct;
-
-  GPIO_InitStruct.Pin = I2C_Handle->SDA_GPIO_Pin;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
-  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
-	GPIO_InitStruct.Pull = GPIO_PULLUP;
-  HAL_GPIO_Init(I2C_Handle->SDA_GPIOx, &GPIO_InitStruct);
+	HAL_GPIO_WritePin(I2C_Handle->SDA_GPIOx, I2C_Handle->SDA_GPIO_Pin, GPIO_PIN_SET);
 }
 
 static void _SDA_OUT(I2C_Handle_Struct_t* I2C_Handle)
 {
-  GPIO_InitTypeDef GPIO_InitStruct;
-
-  GPIO_InitStruct.Pin = I2C_Handle->SDA_GPIO_Pin;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
-  HAL_GPIO_Init(I2C_Handle->SDA_GPIOx, &GPIO_InitStruct);
+	__NOP();
 }
 
 static void _GPIO_CLK_Init(GPIO_TypeDef* GPIOx)
@@ -59,12 +48,12 @@ void I2C_GPIO_Config(I2C_Handle_Struct_t* I2C_Handle)
 
   GPIO_InitStruct.Pin = I2C_Handle->SCL_GPIO_Pin;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
   HAL_GPIO_Init(I2C_Handle->SCL_GPIOx, &GPIO_InitStruct);
 	
 	GPIO_InitStruct.Pin = I2C_Handle->SDA_GPIO_Pin;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
   HAL_GPIO_Init(I2C_Handle->SDA_GPIOx, &GPIO_InitStruct);
 }
 

+ 3 - 0
修改说明.txt

@@ -412,3 +412,6 @@ V5.2.5_20211202
 4、修改低压保护的处理方式,根据BMS通信状态分别处理;
 5、修改关机处理的等待时间,由5s调整到1s,解决仪表关机到下次开机时间很短导致误报MCU故障的问题;
 6、低压保护默认值调整为30V。
+
+V5.2.5_20211202_1
+1、修改I2C操作SDA方式,解决频繁封波导致电机异常的问题。

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini