|
@@ -19,6 +19,7 @@
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
|
#include "main.h"
|
|
|
#include "adc.h"
|
|
|
+#include "dma.h"
|
|
|
#include "tim.h"
|
|
|
#include "usart.h"
|
|
|
#include "gpio.h"
|
|
@@ -38,8 +39,8 @@
|
|
|
int fputc(int ch, FILE *f)
|
|
|
{
|
|
|
uint8_t temp[10] = {ch};
|
|
|
- HAL_UART_Transmit(&huart1, temp,10, 50);
|
|
|
- HAL_UART_Transmit(&huart3, temp,10, 50);
|
|
|
+ HAL_UART_Transmit(&huart1, temp,1, 2);
|
|
|
+ HAL_UART_Transmit(&huart3, temp,1, 2);
|
|
|
return ch;
|
|
|
}
|
|
|
/* USER CODE END PD */
|
|
@@ -55,10 +56,14 @@ int fputc(int ch, FILE *f)
|
|
|
uint8_t data_to_send[50];
|
|
|
uint16_t CRC_value = 0;
|
|
|
uint16_t initial_address = 0x00C1;
|
|
|
-uint32_t System_version = 0x23051700;
|
|
|
+uint32_t System_version = Version_sys;
|
|
|
uint16_t BaudrateValue = 0x0000;
|
|
|
uint16_t Adc2_CalibrationValue ;
|
|
|
uint16_t Adc3_CalibrationValue ;
|
|
|
+
|
|
|
+uint8_t Rx_Flag = 0;
|
|
|
+uint16_t Rx_Len = 0;
|
|
|
+uint8_t Rx_Buf[Rx_Max] = {0};
|
|
|
/* USER CODE END PV */
|
|
|
|
|
|
/* Private function prototypes -----------------------------------------------*/
|
|
@@ -100,6 +105,7 @@ int main(void)
|
|
|
|
|
|
/* Initialize all configured peripherals */
|
|
|
MX_GPIO_Init();
|
|
|
+ MX_DMA_Init();
|
|
|
MX_USART1_UART_Init();
|
|
|
MX_ADC1_Init();
|
|
|
MX_TIM2_Init();
|
|
@@ -110,323 +116,287 @@ int main(void)
|
|
|
updatePbStatus(read_flash_16(ADDR_FLASH_PAGE_62));
|
|
|
update_baudrate(read_flash_16(ADDR_FLASH_PAGE_63));
|
|
|
AdcCalibration_init();
|
|
|
+ HAL_UART_Receive_DMA(&huart1, Rx_Buf, Rx_Max);
|
|
|
+ __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
|
|
|
/* USER CODE END 2 */
|
|
|
|
|
|
/* Infinite loop */
|
|
|
/* USER CODE BEGIN WHILE */
|
|
|
while (1)
|
|
|
{
|
|
|
-#if Modbus
|
|
|
- if(flag == 1 && (calculate_crc(receive_buffer,6) == (receive_buffer[7] << 8 | receive_buffer[6]))) {
|
|
|
-
|
|
|
- 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){
|
|
|
+ if(Rx_Flag == 1 && (calculate_crc(Rx_Buf,6) == (Rx_Buf[7] << 8 | Rx_Buf[6]))) {
|
|
|
+ if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, 0x00, gpioaStatus, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, 0x00, gpiobStatus, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc2_byte1, adc2_byte2, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x04 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc3_byte1, adc3_byte2, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x05 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc1_byte1, adc1_byte2, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xBB && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, (uint8_t)(System_version >> 24), (uint8_t)(System_version >> 16), (uint8_t)(System_version >> 8), (uint8_t)(System_version ), 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 7);
|
|
|
data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, 0x00, gpioaStatus, 0x00, gpiobStatus, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 7);
|
|
|
data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 9);
|
|
|
data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[10] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x04){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 11);
|
|
|
data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[12] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 13, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x05){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 13);
|
|
|
data_to_send[13] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[14] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 15, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 7);
|
|
|
data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 9);
|
|
|
data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[10] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x04){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 11);
|
|
|
data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[12] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 13, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 7);
|
|
|
data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte1, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 9);
|
|
|
data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[10] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x04 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte1, 0x00, 0x00};
|
|
|
uint16_t CRC_value = calculate_crc(data_to_send, 7);
|
|
|
data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
|
|
|
data_to_send[8] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else if((receive_buffer[0] == (uint8_t)initial_address || receive_buffer[0] == 0xFA) && receive_buffer[1] == 0x03 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0xAA && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
+ else if((Rx_Buf[0] == (uint8_t)initial_address || Rx_Buf[0] == 0xFA) && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xAA && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
uint8_t data_to_send[] = {0xFA, 0x03, 0x02, 0x00, (uint8_t)initial_address, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
- else if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x06 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x02 && receive_buffer[4] == 0x00){
|
|
|
- updatePbStatus(receive_buffer[5]);
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00){
|
|
|
+ updatePbStatus(Rx_Buf[5]);
|
|
|
erase_flash(ADDR_FLASH_PAGE_62);
|
|
|
- write_flash_PbStatus(receive_buffer); // 写入Flash
|
|
|
- uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, receive_buffer[5], 0x00, 0x00};
|
|
|
+ write_flash_PbStatus(Rx_Buf); // 写入Flash
|
|
|
+ uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, Rx_Buf[5], 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
- else if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x06 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x0A && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0A && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
erase_flash(ADDR_FLASH_PAGE_64);
|
|
|
write_flash_autoAdc(ADDR_FLASH_PAGE_64);
|
|
|
uint16_t now_calibrationValue = Adc2_CalibrationValue;
|
|
@@ -437,17 +407,15 @@ int main(void)
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x06 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0x0B && receive_buffer[4] == 0x00 && receive_buffer[5] == 0x01){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0B && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
|
|
|
erase_flash(ADDR_FLASH_PAGE_65);
|
|
|
write_flash_autoAdc(ADDR_FLASH_PAGE_65);
|
|
|
uint16_t now_calibrationValue = Adc3_CalibrationValue;
|
|
@@ -458,77 +426,67 @@ int main(void)
|
|
|
data_to_send[6] = (uint8_t)(CRC_value >> 8);
|
|
|
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else 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]);
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0C && Rx_Buf[4] == 0x00){
|
|
|
+ update_baudrate(Rx_Buf[5]);
|
|
|
erase_flash(ADDR_FLASH_PAGE_63);
|
|
|
- write_flash_Baudrate(receive_buffer); // 写入Flash
|
|
|
- uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x00, 0x0C, 0x00, receive_buffer[5], 0x00, 0x00};
|
|
|
+ write_flash_Baudrate(Rx_Buf); // 写入Flash
|
|
|
+ uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x00, 0x0C, 0x00, Rx_Buf[5], 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 8, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
- else if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x06 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0xAA && receive_buffer[4] == 0x00){
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xAA && Rx_Buf[4] == 0x00){
|
|
|
erase_flash(ADDR_FLASH_PAGE_61);
|
|
|
- write_flash_address(receive_buffer); // 写入Flash
|
|
|
+ write_flash_address(Rx_Buf); // 写入Flash
|
|
|
uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, (uint8_t)initial_address, 0x00, 0x00};
|
|
|
uint16_t 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_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
|
|
|
if(status == HAL_OK) {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- flag = 0;
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ Rx_Flag = 0;
|
|
|
} else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
}
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
- else if(receive_buffer[0] == (uint8_t)initial_address && receive_buffer[1] == 0x06 && receive_buffer[2] == 0x00 && receive_buffer[3] == 0xCC && receive_buffer[4] == 0xA5 && receive_buffer[5] == 0x5A){
|
|
|
- flag = 0; // 将标志位重新置为0
|
|
|
- memset(receive_buffer,0,sizeof(receive_buffer));
|
|
|
+ else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xCC && Rx_Buf[4] == 0xA5 && Rx_Buf[5] == 0x5A){
|
|
|
+ Rx_Flag = 0; // 将标志位重新置为0
|
|
|
+ memset(Rx_Buf,0,sizeof(Rx_Buf));
|
|
|
HAL_NVIC_SystemReset();
|
|
|
}
|
|
|
else {
|
|
|
- memset(receive_buffer, 0, sizeof(receive_buffer));
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE); // 清除接收溢出标志位
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE); // 清除接收中断标志位
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
+ memset(Rx_Buf, 0, sizeof(Rx_Buf));
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
gpioaStatus = GetPaInputStatus();
|
|
|
gpiobStatus = GetPbOutputStatus();
|
|
|
GetADCResults(&hadc1);
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE); // 清除接收溢出标志位
|
|
|
- __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_RXNE); // 清除接收中断标志位
|
|
|
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
|
|
|
HAL_Delay(1);
|
|
|
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
|
|
|
- HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
|
|
|
- #endif
|
|
|
+ HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
|
|
|
+
|
|
|
/* USER CODE END WHILE */
|
|
|
|
|
|
/* USER CODE BEGIN 3 */
|