#include #include #include "main.h" #include "stm32f2xx_hal.h" #include void Atten_Operate(uint8_t* data); void Atten_Table_Read(uint16_t Address,Atten_Table_Value_t TableName,uint8_t* data); void Uart_Data_Send(uint8_t* data,uint8_t size); #define DEBUG_PRINT 0 Atten_AB_Val_t Atten_Setting; Atten_Table_Value_t ATT_A_EN_150M_Table; Atten_Table_Value_t ATT_A_EN_WIFI1_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI2_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI3_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI4_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI1_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI2_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI3_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI4_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_28_28_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_28_28_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_28_28_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_28_5_29Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_28_5_29Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_28_5_29Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_29_29_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_29_29_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_29_29_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_29_5_30Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_29_5_30Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_29_5_30Ghz_Table; Atten_Table_Value_t ATT_B_EN_150M_Table; Atten_Table_Value_t ATT_B_EN_WIFI1_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI2_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI3_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI4_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI1_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI2_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI3_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI4_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_28_28_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_28_28_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_28_28_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_28_5_29Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_28_5_29Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_28_5_29Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_29_29_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_29_29_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_29_29_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_29_5_30Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_29_5_30Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_29_5_30Ghz_Table; Atten_Curr_Val_t ATT_Curr_Value; #if 0 // PYJ.2019.02.15_BEGIN -- void gpio_output_set(uint8_t gpioPin){ HAL_GPIO_WritePinOut(gpioPin,GPIO_PIN_SET); HAL_GPIO_WritePinMode(gpioPin, ITH_GPIO_MODE0); } void Atten_GpioInit(void){ gpio_output_set(ITH_GPIO_PIN70); gpio_output_set(ITH_GPIO_PIN71); gpio_output_set(ITH_GPIO_PIN72); gpio_output_set(ITH_GPIO_PIN73); gpio_output_set(ITH_GPIO_PIN74); gpio_output_set(ITH_GPIO_PIN75); gpio_output_set(ITH_GPIO_PIN76); gpio_output_set(ITH_GPIO_PIN77); gpio_output_set(ITH_GPIO_PIN78); gpio_output_set(ITH_GPIO_PIN79); gpio_output_set(ITH_GPIO_PIN80); gpio_output_set(ITH_GPIO_PIN81); gpio_output_set(ITH_GPIO_PIN5); gpio_output_set(ITH_GPIO_PIN6); gpio_output_set(ITH_GPIO_PIN7); gpio_output_set(ITH_GPIO_PIN8); gpio_output_set(ITH_GPIO_PIN9); gpio_output_set(ITH_GPIO_PIN10); gpio_output_set(ITH_GPIO_PIN11); gpio_output_set(ITH_GPIO_PIN12); gpio_output_set(ITH_GPIO_PIN13); gpio_output_set(ITH_GPIO_PIN16); gpio_output_set(ITH_GPIO_PIN17); gpio_output_set(ITH_GPIO_PIN21); gpio_output_set(ITH_GPIO_PIN22); } #endif // PYJ.2019.02.15_END -- uint8_t QPC6614_Atten_Rx_DataCheck(float data) { float Temp_Atten_Ret = data; uint8_t Temp_Atten_Value = QPC6614_ATTEN_0DB_VAL; while (1) { if (data == 0) break; if (data == ATTEN_31_5DB) { data = 0; Temp_Atten_Value &= QPC6614_ATTEN_31_5DB_VAL; } else if (data >= ATTEN_16DB) { data -= ATTEN_16DB; Temp_Atten_Value &= QPC6614_ATTEN_16DB_VAL; } else if (data >= ATTEN_8DB) { data -= ATTEN_8DB; Temp_Atten_Value &= QPC6614_ATTEN_8DB_VAL; } else if (data >= ATTEN_4DB) { data -= ATTEN_4DB; Temp_Atten_Value &= QPC6614_ATTEN_4DB_VAL; } else if (data >= ATTEN_2DB) { data -= ATTEN_2DB; Temp_Atten_Value &= QPC6614_ATTEN_2DB_VAL; } else if (data >= ATTEN_1DB) { data -= ATTEN_1DB; Temp_Atten_Value &= QPC6614_ATTEN_1DB_VAL; } else if (data >= ATTEN_0_5DB) { data = 0; Temp_Atten_Value &= QPC6614_ATTEN_0_5DB_VAL; } else if (data >= ATTEN_0DB) { data -= ATTEN_0DB; Temp_Atten_Value &= QPC6614_ATTEN_0DB_VAL; } } return Temp_Atten_Value; } uint8_t ADRF5720_Atten_Rx_DataCheck(float data) { double Temp_Atten_Ret = data; uint8_t Temp_Atten_Value = ADRF5720_ATTEN_0DB_VAL; while (1) { if (data == 0) break; if (data == ATTEN_31_5DB) { data = 0; Temp_Atten_Value |= ADRF5720_ATTEN_31_5DB_VAL; } else if (data >= ATTEN_16DB) { data -= ATTEN_16DB; Temp_Atten_Value |= ADRF5720_ATTEN_16DB_VAL; } else if (data >= ATTEN_8DB) { data -= ATTEN_8DB; Temp_Atten_Value |= ADRF5720_ATTEN_8DB_VAL; } else if (data >= ATTEN_4DB) { data -= ATTEN_4DB; Temp_Atten_Value |= ADRF5720_ATTEN_4DB_VAL; } else if (data >= ATTEN_2DB) { data -= ATTEN_2DB; Temp_Atten_Value |= ADRF5720_ATTEN_2DB_VAL; } else if (data >= ATTEN_1DB) { data -= ATTEN_1DB; Temp_Atten_Value |= ADRF5720_ATTEN_1DB_VAL; } else if (data >= ATTEN_0_5DB) { data -= ATTEN_0_5DB; Temp_Atten_Value |= ADRF5720_ATTEN_0_5DB_VAL; } else if (data >= ATTEN_0DB) { data -= ATTEN_0DB; Temp_Atten_Value |= ADRF5720_ATTEN_0DB_VAL; } } return Temp_Atten_Value; } uint8_t HMC939_Atten_Rx_DataCheck(uint8_t data) { uint8_t Temp_Atten_Ret = data, Temp_Atten_Value = HMC939_ATTEN_0DB_VAL; while (1) { if (data == ATTEN_0DB) { data -= ATTEN_0DB; Temp_Atten_Value &= HMC939_ATTEN_0DB_VAL; break; } if (data == ATTEN_31DB) { data = 0; Temp_Atten_Value &= HMC939_ATTEN_31DB_VAL; } else if (data >= ATTEN_16DB) { data -= ATTEN_16DB; Temp_Atten_Value &= HMC939_ATTEN_16DB_VAL; } else if (data >= ATTEN_8DB) { data -= ATTEN_8DB; Temp_Atten_Value &= HMC939_ATTEN_8DB_VAL; } else if (data >= ATTEN_4DB) { data -= ATTEN_4DB; Temp_Atten_Value &= HMC939_ATTEN_4DB_VAL; } else if (data >= ATTEN_2DB) { data -= ATTEN_2DB; Temp_Atten_Value &= HMC939_ATTEN_2DB_VAL; } else if (data >= ATTEN_1DB) { data -= ATTEN_1DB; Temp_Atten_Value &= HMC939_ATTEN_1DB_VAL; } } return Temp_Atten_Value; } void Atten_150M_DataSet(float value,uint8_t type) { uint8_t cnt = 0; uint8_t ret_buf[CHSET_UART_LENGTH] = {0,}; ret_buf[cnt++] = 0xBE; ret_buf[cnt++] = type; ret_buf[cnt++] = CHSET_UARTDATA_LENGTH; ret_buf[cnt++] = QPC6614_Atten_Rx_DataCheck(value); ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(ret_buf, ret_buf[CHSET_UARTDATA_LENGTH] + 2); ret_buf[CHSET_UART_LENGTH - 1] = 0xEB; Atten_Operate_Mem_RW(ret_buf); } void Atten_Wifi_DataSet(float value,uint8_t type) { uint8_t cnt = 0; uint8_t ret_buf[CHSET_UART_LENGTH] = {0,}; ret_buf[cnt++] = 0xBE; ret_buf[cnt++] = type; ret_buf[cnt++] = CHSET_UARTDATA_LENGTH; if (value > 90) { value -= 90; ret_buf[cnt++] = QPC6614_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_Atten_Rx_DataCheck(value); } else if (value > 60) { value -= 60; QPC6614_Atten_Rx_DataCheck(value); ret_buf[cnt++] = QPC6614_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_Atten_Rx_DataCheck(value); ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;//3번째 byte Data } else if (value > 30) { value -= 30; ret_buf[cnt++] = QPC6614_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_Atten_Rx_DataCheck(value); ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;//3번째 byte Data } else if (value >= 0) { ret_buf[cnt++] = QPC6614_Atten_Rx_DataCheck(value); ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;//3번째 byte Data ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;//3번째 byte Data } ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(ret_buf, ret_buf[CHSET_UARTDATA_LENGTH] + 2); ret_buf[CHSET_UART_LENGTH - 1] = 0xEB; Atten_Operate_Mem_RW(ret_buf); } void Atten_30G_DataSet(float value,uint8_t type) { int cnt = 0; uint8_t ret_buf[9] = {0,}; ret_buf[cnt++] = 0xBE; ret_buf[cnt++] = type; ret_buf[cnt++] = CHSET_UARTDATA_LENGTH; if (value > 60) { value -= 60; ret_buf[cnt++] = HMC939_ATTEN_30DB_VAL; ret_buf[cnt++] = HMC939_ATTEN_30DB_VAL; ret_buf[cnt++] = ADRF5720_Atten_Rx_DataCheck(value);; } else if (value >= 30) { value -= 30; ret_buf[cnt++] = HMC939_ATTEN_30DB_VAL; ret_buf[cnt++] = HMC939_Atten_Rx_DataCheck(value); ret_buf[cnt++] = ADRF5720_ATTEN_0DB_VAL; } else if (value >= 0) { ret_buf[cnt++] = HMC939_Atten_Rx_DataCheck(value); ret_buf[cnt++] = HMC939_ATTEN_0DB_VAL; ret_buf[cnt++] = ADRF5720_ATTEN_0DB_VAL; } ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(ret_buf, ret_buf[CHSET_UARTDATA_LENGTH] + 2); ret_buf[CHSET_UART_LENGTH - 1] = 0xEB; Atten_Operate_Mem_RW(ret_buf); } void QPC6614_Ach_atten_ctrl(uint8_t data,uint8_t Ch){ atten_ctrl pin; uint8_t i = 0; pin.Clock_PIN = GPIO_PIN_8; pin.Data_PIN = GPIO_PIN_9; pin.LE_PIN = GPIO_PIN_10; if(Ch == 0) { pin.LE_PIN = GPIO_PIN_10; }//LE} else if (Ch == 1) { pin.LE_PIN = GPIO_PIN_11; }//LE} else if (Ch == 2) { pin.LE_PIN = GPIO_PIN_12; }//LE} else if (Ch == 3) { pin.LE_PIN = GPIO_PIN_13; }//LE} else if (Ch == 4) { pin.LE_PIN = GPIO_PIN_14; }//LE} pin.Port = GPIOE; for(i = 0; i < 6; i++){ if(data & 0x20) HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA else HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA data <<= 1; HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); } HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET); } void QPC6614_Bch_atten_ctrl(uint8_t data,uint8_t Ch){ atten_ctrl pin; uint8_t i = 0; pin.Clock_PIN = GPIO_PIN_12; pin.Data_PIN = GPIO_PIN_13; if(Ch == 0) { pin.LE_PIN = GPIO_PIN_14; pin.Port = GPIOG; } else if (Ch == 1) { pin.LE_PIN = GPIO_PIN_6; pin.Port = GPIOB; } else if (Ch == 2) { pin.LE_PIN = GPIO_PIN_7; pin.Port = GPIOB; } else if (Ch == 3) { pin.LE_PIN = GPIO_PIN_5; pin.Port = GPIOB; } else if (Ch == 4) { pin.LE_PIN = GPIO_PIN_9; pin.Port = GPIOB; } pin.Port = GPIOG; for(i = 0; i < 6; i++){ if(data & 0x20) HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA else HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA data <<= 1; HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); } HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK if (Ch != 0) pin.Port = GPIOB; HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET); } void ADRF5720_Ach_atten_ctrl(uint8_t data){ atten_ctrl pin; uint8_t i = 0; pin.Clock_PIN = GPIO_PIN_13; pin.Data_PIN = GPIO_PIN_14; pin.LE_PIN = GPIO_PIN_15; HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_RESET);//LE HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK for(i = 0; i < 8; i++){ if(data & 0x80) HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_SET);//DATA else HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA data <<= 1; HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); } HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_RESET);//LE HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK } void ADRF5720_Bch_atten_ctrl(uint8_t data){ atten_ctrl pin; uint8_t i = 0; pin.Clock_PIN = GPIO_PIN_6; pin.Data_PIN = GPIO_PIN_7; pin.LE_PIN = GPIO_PIN_9; HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_RESET);//LE HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK for(i = 0; i < 8; i++){ if(data & 0x80) HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_SET);//DATA else HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA data <<= 1; HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); } HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_RESET);//LE HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK } void HMC939_Ach_atten_ctrl(uint8_t data,uint8_t Ch){ HMC939atten_ctrl pin; pin.ATT_P0 = GPIO_PIN_4; pin.ATT_P1 = GPIO_PIN_5; pin.ATT_P2 = GPIO_PIN_6; pin.ATT_P3 = GPIO_PIN_7; pin.ATT_P4 = GPIO_PIN_4; pin.ATT_ENABLE = GPIO_PIN_7; if(data & 0x10) HAL_GPIO_WritePin(GPIOC,pin.ATT_P4,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOC,pin.ATT_P4,GPIO_PIN_RESET); //data if(data & 0x08) HAL_GPIO_WritePin(GPIOA,pin.ATT_P3,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOA,pin.ATT_P3,GPIO_PIN_RESET); //data if(data & 0x04) HAL_GPIO_WritePin(GPIOA,pin.ATT_P2,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOA,pin.ATT_P2,GPIO_PIN_RESET); //data if(data & 0x02) HAL_GPIO_WritePin(GPIOA,pin.ATT_P1,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOA,pin.ATT_P1,GPIO_PIN_RESET); //data if(data & 0x01) HAL_GPIO_WritePin(GPIOA,pin.ATT_P0,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOA,pin.ATT_P0,GPIO_PIN_RESET); //data if(Ch == 0) { pin.ATT_ENABLE = GPIO_PIN_5;//enable HAL_GPIO_WritePin(GPIOC,pin.ATT_ENABLE,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOC,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE HAL_Delay(1); }//LE} if (Ch == 1) { pin.ATT_ENABLE = GPIO_PIN_0;//enable HAL_GPIO_WritePin(GPIOB,pin.ATT_ENABLE,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOB,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE HAL_Delay(1); }//LE} } void HMC939_Bch_atten_ctrl(uint8_t data,uint8_t Ch){ HMC939atten_ctrl pin; pin.ATT_P0 = GPIO_PIN_10; pin.ATT_P1 = GPIO_PIN_11; pin.ATT_P2 = GPIO_PIN_12; pin.ATT_P3 = GPIO_PIN_0; pin.ATT_P4 = GPIO_PIN_1; pin.ATT_ENABLE = GPIO_PIN_7; if(data & 0x10) HAL_GPIO_WritePin(GPIOD,pin.ATT_P4,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOD,pin.ATT_P4,GPIO_PIN_RESET); //data if(data & 0x08) HAL_GPIO_WritePin(GPIOD,pin.ATT_P3,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOD,pin.ATT_P3,GPIO_PIN_RESET); //data if(data & 0x04) HAL_GPIO_WritePin(GPIOC,pin.ATT_P2,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOC,pin.ATT_P2,GPIO_PIN_RESET); //data if(data & 0x02) HAL_GPIO_WritePin(GPIOC,pin.ATT_P1,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOC,pin.ATT_P1,GPIO_PIN_RESET); //data if(data & 0x01) HAL_GPIO_WritePin(GPIOC,pin.ATT_P0,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOC,pin.ATT_P0,GPIO_PIN_RESET); //data if(Ch == 0) { pin.ATT_ENABLE = GPIO_PIN_2;//enable HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE HAL_Delay(1); }//LE} if (Ch == 1) { pin.ATT_ENABLE = GPIO_PIN_3;//enable HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE HAL_Delay(1); }//LE} } Atten_Alarm_t Atten_Alarm_Read(void){ Atten_Alarm_t ret; ret.Atten_Ach_Alarm_30G = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6); ret.Atten_Bch_Alarm_30G = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1); ret.Atten_Ach_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_7); ret.Atten_Bch_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); ret.Atten_Ach_Alarm_150M = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8); ret.Atten_Bch_Alarm_150M = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3); return ret; } void Alarm_Operate(Atten_Alarm_t data){ if(data.Atten_Ach_Alarm_30G == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_30G == GPIO_PIN_RESET){ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET); } else{ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET); } if(data.Atten_Ach_Alarm_WIFI == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_WIFI == GPIO_PIN_RESET){ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET); } else{ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET); } if(data.Atten_Ach_Alarm_150M == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_150M == GPIO_PIN_RESET){ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_SET); } else{ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET); } } void Uart_Data_Send(uint8_t* data,uint8_t size){ HAL_UART_Transmit(&huart3, data,size, 10); // for(uint8_t i = 0; i