|
@@ -55,7 +55,8 @@ int fputc(int ch, FILE *f)
|
|
|
uint8_t data_to_send[300];
|
|
|
uint16_t CRC_value = 0;
|
|
|
uint16_t initial_address = 0x0000;
|
|
|
-uint32_t System_version = 0x23050400;
|
|
|
+uint32_t System_version = 0x23051100;
|
|
|
+uint16_t BaudrateValue = 0x0000;
|
|
|
uint16_t Adc2_CalibrationValue ;
|
|
|
uint16_t Adc3_CalibrationValue ;
|
|
|
/* USER CODE END PV */
|
|
@@ -107,6 +108,7 @@ int main(void)
|
|
|
HAL_TIM_Base_Start_IT(&htim2);
|
|
|
read_new_address_from_flash(ADDR_FLASH_PAGE_61);
|
|
|
updatePbStatus(read_flash_16(ADDR_FLASH_PAGE_62));
|
|
|
+ update_baudrate(read_flash_16(ADDR_FLASH_PAGE_63));
|
|
|
AdcCalibration_init();
|
|
|
// printf("init\r\n");
|
|
|
/* USER CODE END 2 */
|
|
@@ -123,65 +125,65 @@ int main(void)
|
|
|
if (flag == 1 && (calculate_crc(receive_buffer,6) == (receive_buffer[7] << 8 | receive_buffer[6]))) // 如果标志位为1
|
|
|
{
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x01 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpioaStatus;
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
- HAL_UART_Transmit(&huart1, data_to_send, 7, 6); // 发送数据
|
|
|
+ HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x02 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpiobStatus;
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x03 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = adc2_byte1;
|
|
|
data_to_send[4] = adc2_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x04 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = adc3_byte1;
|
|
|
data_to_send[4] = adc3_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x05 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = adc1_byte1;
|
|
|
data_to_send[4] = adc1_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
@@ -192,13 +194,13 @@ int main(void)
|
|
|
write_flash_autoAdc(ADDR_FLASH_PAGE_64);
|
|
|
uint16_t now_calibrationValue = Adc2_CalibrationValue;
|
|
|
CoverADC(ADDR_FLASH_PAGE_64);
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x06;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = (uint8_t)((now_calibrationValue >> 8) & 0xFF);
|
|
|
data_to_send[4] = (uint8_t)(now_calibrationValue & 0xFF); // 获取低8位
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
@@ -215,7 +217,7 @@ int main(void)
|
|
|
data_to_send[3] = (uint8_t)((now_calibrationValue >> 8) & 0xFF);
|
|
|
data_to_send[4] = (uint8_t)(now_calibrationValue & 0xFF); // 获取低8位
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
@@ -230,22 +232,22 @@ int main(void)
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = receive_buffer[5]; // 获取低8位
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0xBB && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x02){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x04; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x04;
|
|
|
data_to_send[3] = (uint8_t)(System_version >> 24);
|
|
|
data_to_send[4] = (uint8_t)(System_version >> 16);
|
|
|
data_to_send[5] = (uint8_t)(System_version >> 8);
|
|
|
data_to_send[6] = (uint8_t)(System_version );
|
|
|
CRC_value = calculate_crc(data_to_send,7);
|
|
|
- data_to_send[7] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 9, 9); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
@@ -260,37 +262,37 @@ int main(void)
|
|
|
updatePbStatus(receive_buffer[5]);
|
|
|
erase_flash(ADDR_FLASH_PAGE_62);
|
|
|
write_flash_PbStatus(receive_buffer); // 写入Flash
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x06;
|
|
|
- data_to_send[2] = 0x02; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = receive_buffer[5];
|
|
|
CRC_value = calculate_crc(data_to_send,5);
|
|
|
- data_to_send[5] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x01 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x02 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x04; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x04;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpioaStatus;
|
|
|
data_to_send[5] = 0x00;
|
|
|
data_to_send[6] = gpiobStatus;
|
|
|
CRC_value = calculate_crc(data_to_send,7);
|
|
|
- data_to_send[7] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 9, 8); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x01 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x03 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x06; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x06;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpioaStatus;
|
|
|
data_to_send[5] = 0x00;
|
|
@@ -298,16 +300,16 @@ int main(void)
|
|
|
data_to_send[7] = adc2_byte1;
|
|
|
data_to_send[8] = adc2_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,9);
|
|
|
- data_to_send[9] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[10] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 11, 10); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x01 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x04 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x08; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x08;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpioaStatus;
|
|
|
data_to_send[5] = 0x00;
|
|
@@ -317,16 +319,16 @@ int main(void)
|
|
|
data_to_send[9] = adc3_byte1;
|
|
|
data_to_send[10] = adc3_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,11);
|
|
|
- data_to_send[11] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[12] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 13, 12); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x01 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x05 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x0A; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x0A;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpioaStatus;
|
|
|
data_to_send[5] = 0x00;
|
|
@@ -338,31 +340,31 @@ int main(void)
|
|
|
data_to_send[11] = adc1_byte1;
|
|
|
data_to_send[12] = adc1_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,13);
|
|
|
- data_to_send[13] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[13] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[14] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 15, 14); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x02 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x02 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x04; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x04;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpiobStatus;
|
|
|
data_to_send[5] = adc2_byte1;
|
|
|
data_to_send[6] = adc2_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,7);
|
|
|
- data_to_send[7] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 9, 8); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x02 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x03 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x06; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x06;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpiobStatus;
|
|
|
data_to_send[5] = adc2_byte1;
|
|
@@ -370,16 +372,16 @@ int main(void)
|
|
|
data_to_send[7] = adc3_byte1;
|
|
|
data_to_send[8] = adc3_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,9);
|
|
|
- data_to_send[9] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[10] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 11, 10); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x02 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x04 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x08; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x08;
|
|
|
data_to_send[3] = 0x00;
|
|
|
data_to_send[4] = gpiobStatus;
|
|
|
data_to_send[5] = adc2_byte1;
|
|
@@ -389,31 +391,31 @@ int main(void)
|
|
|
data_to_send[9] = adc1_byte1;
|
|
|
data_to_send[10] = adc1_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,11);
|
|
|
- data_to_send[11] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[12] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 13, 12); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x03 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x02 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x04; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x04;
|
|
|
data_to_send[3] = adc2_byte1;
|
|
|
data_to_send[4] = adc2_byte2;
|
|
|
data_to_send[5] = adc3_byte1;
|
|
|
data_to_send[6] = adc3_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,7);
|
|
|
- data_to_send[7] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 9, 8); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x03 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x03 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x06; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x06;
|
|
|
data_to_send[3] = adc2_byte1;
|
|
|
data_to_send[4] = adc2_byte2;
|
|
|
data_to_send[5] = adc3_byte1;
|
|
@@ -421,27 +423,56 @@ int main(void)
|
|
|
data_to_send[7] = adc1_byte1;
|
|
|
data_to_send[8] = adc1_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,9);
|
|
|
- data_to_send[9] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[10] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 11, 10); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x04 && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x02 ){
|
|
|
- data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[0] = (uint8_t)initial_address;
|
|
|
data_to_send[1] = 0x03;
|
|
|
- data_to_send[2] = 0x04; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[2] = 0x04;
|
|
|
data_to_send[3] = adc3_byte1;
|
|
|
data_to_send[4] = adc3_byte2;
|
|
|
data_to_send[5] = adc1_byte1;
|
|
|
data_to_send[6] = adc1_byte2;
|
|
|
CRC_value = calculate_crc(data_to_send,7);
|
|
|
- data_to_send[7] = (uint8_t)(CRC_value & 0xFF);; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_UART_Transmit(&huart1, data_to_send, 9, 8); // 发送数据
|
|
|
flag = 0; // 将标志位重新置为0
|
|
|
}
|
|
|
|
|
|
+ if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x06 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x0C && receive_buffer[4] == 0x00 ){
|
|
|
+ update_baudrate(receive_buffer[5]);
|
|
|
+ erase_flash(ADDR_FLASH_PAGE_63);
|
|
|
+ write_flash_Baudrate(receive_buffer); // 写入Flash
|
|
|
+ data_to_send[0] = (uint8_t)initial_address; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[1] = 0x06;
|
|
|
+ data_to_send[2] = 0x00; // 将接收到的数据存储到一个新的数组中
|
|
|
+ data_to_send[3] = 0x0C;
|
|
|
+ data_to_send[4] = 0x00;
|
|
|
+ data_to_send[5] = receive_buffer[5];
|
|
|
+ CRC_value = calculate_crc(data_to_send,6);
|
|
|
+ data_to_send[6] = (uint8_t)(CRC_value & 0xFF);
|
|
|
+ data_to_send[7] = (uint8_t)(CRC_value >> 8);
|
|
|
+ HAL_UART_Transmit(&huart1, data_to_send, 8, 8); // 发送数据
|
|
|
+ flag = 0; // 将标志位重新置为0
|
|
|
+ }
|
|
|
+
|
|
|
+ if(receive_buffer[0] == 0xFA && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0xAA && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01 ){
|
|
|
+ data_to_send[0] = 0xFA;
|
|
|
+ data_to_send[1] = 0x03;
|
|
|
+ data_to_send[2] = 0x02;
|
|
|
+ data_to_send[3] = 0x00;
|
|
|
+ data_to_send[4] = (uint8_t)initial_address;
|
|
|
+ CRC_value = calculate_crc(data_to_send,5);
|
|
|
+ data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
|
|
|
+ data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
+ HAL_UART_Transmit(&huart1, data_to_send, 7, 7); // 发送数据
|
|
|
+ flag = 0; // 将标志位重新置为0
|
|
|
+ }
|
|
|
// gpioaStatus = 0;adc1_byte1 =0;adc1_byte2=0;adc2_byte1 =0;adc2_byte2=0;adc3_byte1 =0;adc3_byte2=0;
|
|
|
HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
}
|
|
@@ -537,6 +568,10 @@ void erase_flash(uint32_t ADDR_FLASH){ //
|
|
|
if(ADDR_FLASH == ADDR_FLASH_PAGE_65) {
|
|
|
Adc3_CalibrationValue = 0x0000; // 清零
|
|
|
}
|
|
|
+
|
|
|
+ if(ADDR_FLASH == ADDR_FLASH_PAGE_63) {
|
|
|
+ BaudrateValue = 0xFFFF;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -602,6 +637,16 @@ void CoverADC(uint32_t ADDR) {
|
|
|
Value_old_addr3 = Overwrite_Value;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+void write_flash_Baudrate(uint8_t* rx_buffer){ //数组位置5进行写入——Baudrate
|
|
|
+ uint8_t newStatus = rx_buffer[5];
|
|
|
+ HAL_FLASH_Unlock(); // 解锁Flash
|
|
|
+ HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_63, newStatus); // 写入PbStatus到Flash
|
|
|
+ HAL_FLASH_Lock(); // 上锁Flash
|
|
|
+ if(status == HAL_OK){
|
|
|
+ BaudrateValue = newStatus; // 将新状态赋值给pb_status
|
|
|
+ }
|
|
|
+}
|
|
|
/* USER CODE END 4 */
|
|
|
|
|
|
/**
|