#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 -- float Atten_PE43711_TraceValue_Func(uint8_t value) { uint8_t Temp_data = 0; float ret = ATTEN_0DB; if (value != 0) Temp_data = (uint8_t)(value & 0x7E); while (1) { if ((Temp_data | PE43711_ATTEN_0DB_VAL) == 0) { ret += ATTEN_0DB; break; } else if ((Temp_data & PE43711_ATTEN_0_5DB_VAL) > 0) { Temp_data &= ( ~PE43711_ATTEN_0_5DB_VAL); ret += ATTEN_0_5DB; } else if ((Temp_data & PE43711_ATTEN_1DB_VAL) > 0) { Temp_data &= ( ~PE43711_ATTEN_1DB_VAL); ret += ATTEN_1DB; } else if ((Temp_data & PE43711_ATTEN_2DB_VAL) > 0) { Temp_data &= ( ~PE43711_ATTEN_2DB_VAL); ret += ATTEN_2DB; } else if ((Temp_data & PE43711_ATTEN_4DB_VAL) > 0) { Temp_data &= (~PE43711_ATTEN_4DB_VAL); ret += ATTEN_4DB; } else if ((Temp_data & PE43711_ATTEN_8DB_VAL) > 0) { Temp_data &= ( ~PE43711_ATTEN_8DB_VAL); ret += ATTEN_8DB; } else if ((Temp_data & PE43711_ATTEN_16DB_VAL) > 0) { Temp_data &= ( ~PE43711_ATTEN_16DB_VAL); ret += ATTEN_16DB; } else if ((Temp_data & PE43711_ATTEN_31_5DB_VAL) >= 0) { Temp_data &= ( ~PE43711_ATTEN_31_5DB_VAL); ret += ATTEN_31_5DB; } } // printf("\r\n ret : %f \r\n",ret); return ret; } float Atten_QPC6614_TraceValue_Func(uint8_t value) { uint8_t Temp_data = 0; float ret = ATTEN_0DB; if (value != 0)Temp_data = (~value)& 0x3F; while (1) { if ((Temp_data | QPC6614_ATTEN_0DB_Trace) == 0) { ret += ATTEN_0DB; break; } else if ((Temp_data & QPC6614_ATTEN_0_5DB_Trace) > 0) { Temp_data &= ~(QPC6614_ATTEN_0_5DB_Trace); ret += ATTEN_0_5DB; } else if ((Temp_data & QPC6614_ATTEN_1DB_Trace) > 0) { Temp_data &= (~QPC6614_ATTEN_1DB_Trace); ret += ATTEN_1DB; } else if ((Temp_data & QPC6614_ATTEN_2DB_Trace) > 0) { Temp_data &= (~QPC6614_ATTEN_2DB_Trace); ret += ATTEN_2DB; } else if ((Temp_data & QPC6614_ATTEN_4DB_Trace) > 0) { Temp_data &= (~QPC6614_ATTEN_4DB_Trace); ret += ATTEN_4DB; } else if ((Temp_data & QPC6614_ATTEN_8DB_Trace) > 0) { Temp_data &= (~QPC6614_ATTEN_8DB_Trace); ret += ATTEN_8DB; } else if ((Temp_data & QPC6614_ATTEN_16DB_Trace) > 0) { Temp_data &= (~QPC6614_ATTEN_16DB_Trace); ret += ATTEN_16DB; } else if ((Temp_data & QPC6614_ATTEN_31_5DB_Trace) >= 0) { Temp_data &= (~QPC6614_ATTEN_31_5DB_Trace); ret += ATTEN_31_5DB; } } return ret; } float Atten_ADRF5720_TraceValue_Func(uint8_t value) { uint8_t Temp_data = 0; float ret = ATTEN_0DB; if (value != 0) Temp_data = (uint8_t)(value & 0x3F); while (1) { if ((Temp_data & ADRF5720_ATTEN_31_5DB_VAL) == ADRF5720_ATTEN_31_5DB_VAL) { Temp_data &= ((~ADRF5720_ATTEN_31_5DB_VAL) & 0x3F); ret += ATTEN_31_5DB; } else if ((Temp_data & ADRF5720_ATTEN_16DB_VAL) > 0) { Temp_data &= ((~ADRF5720_ATTEN_16DB_VAL) & 0x3F); ret += ATTEN_16DB; } else if ((Temp_data & ADRF5720_ATTEN_8DB_VAL) > 0) { Temp_data &= ((~ADRF5720_ATTEN_8DB_VAL) & 0x3F); ret += ATTEN_8DB; } else if ((Temp_data & ADRF5720_ATTEN_4DB_VAL) > 0) { Temp_data &= ((~ADRF5720_ATTEN_4DB_VAL) & 0x3F); ret += ATTEN_4DB; } else if ((Temp_data & ADRF5720_ATTEN_2DB_VAL) > 0) { Temp_data &= ((~ADRF5720_ATTEN_2DB_VAL) & 0x3F); ret += ATTEN_2DB; } else if ((Temp_data & ADRF5720_ATTEN_1DB_VAL) > 0) { Temp_data &= ((~ADRF5720_ATTEN_1DB_VAL) & 0x3F); ret += ATTEN_1DB; } else if ((Temp_data & ADRF5720_ATTEN_0_5DB_VAL) > 0) { Temp_data &= ((~ADRF5720_ATTEN_0_5DB_VAL) & 0x3F); ret += ATTEN_0_5DB; } else if ((Temp_data | ADRF5720_ATTEN_0DB_VAL) == 0) { ret += ATTEN_0DB; break; } } return ret; } float Atten_HMC939_TraceValue_Func(uint8_t value) { uint32_t Temp_data = 0; float ret = ATTEN_0DB; Temp_data = (~value) & 0x1F; while (1) { if ((Temp_data | ((~HMC939_ATTEN_0DB_VAL) & 0x1F)) == 0) { ret += ATTEN_0DB; break; } else if ((Temp_data & ((~HMC939_ATTEN_1DB_VAL) & 0x1F)) > 0) { Temp_data &= (HMC939_ATTEN_1DB_VAL); ret += ATTEN_1DB; } else if ((Temp_data & ((~HMC939_ATTEN_2DB_VAL) & 0x1F)) > 0) { Temp_data &= (HMC939_ATTEN_2DB_VAL); ret += ATTEN_2DB; } else if ((Temp_data & ((~HMC939_ATTEN_4DB_VAL) & 0x1F)) > 0) { Temp_data &= (HMC939_ATTEN_4DB_VAL); ret += ATTEN_4DB; } else if ((Temp_data & ((~HMC939_ATTEN_8DB_VAL) & 0x1F)) > 0) { Temp_data &= (HMC939_ATTEN_8DB_VAL); ret += ATTEN_8DB; } else if ((Temp_data & ((~HMC939_ATTEN_16DB_VAL) & 0x1F)) > 0) { Temp_data &= (HMC939_ATTEN_16DB_VAL); ret += ATTEN_16DB; } else if ((Temp_data & ((~HMC939_ATTEN_30DB_VAL) & 0x1F)) > 0) { Temp_data &= (HMC939_ATTEN_30DB_VAL); ret += ATTEN_31DB; } else if ((Temp_data & ((~HMC939_ATTEN_31DB_VAL) & 0x1F)) >= 0) { Temp_data &= (HMC939_ATTEN_31DB_VAL); ret += ATTEN_31_5DB; } } return ret; } uint8_t PE43711_Atten_Rx_DataCheck(float data) { float Temp_Atten_Ret = data; uint8_t Temp_Atten_Value = PE43711_ATTEN_0DB_VAL; while (1) { if (data == 0) break; if (data == ATTEN_31_5DB) { data = 0; Temp_Atten_Value |= PE43711_ATTEN_31_5DB_VAL; } else if (data >= ATTEN_16DB) { data -= ATTEN_16DB; Temp_Atten_Value |= PE43711_ATTEN_16DB_VAL; } else if (data >= ATTEN_8DB) { data -= ATTEN_8DB; Temp_Atten_Value |= PE43711_ATTEN_8DB_VAL; } else if (data >= ATTEN_4DB) { data -= ATTEN_4DB; Temp_Atten_Value |= PE43711_ATTEN_4DB_VAL; } else if (data >= ATTEN_2DB) { data -= ATTEN_2DB; Temp_Atten_Value |= PE43711_ATTEN_2DB_VAL; } else if (data >= ATTEN_1DB) { data -= ATTEN_1DB; Temp_Atten_Value |= PE43711_ATTEN_1DB_VAL; } else if (data >= ATTEN_0_5DB) { data = 0; Temp_Atten_Value |= PE43711_ATTEN_0_5DB_VAL; } else if (data >= ATTEN_0DB) { data -= ATTEN_0DB; Temp_Atten_Value |= PE43711_ATTEN_0DB_VAL; } } return Temp_Atten_Value; } 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[cnt++] = QPC6614_ATTEN_0DB_VAL; ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL; ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL; ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(&ret_buf[Bluecell_Type],ret_buf[Bluecell_Length]+2); ret_buf[CHSET_UART_LENGTH - 1] = 0xEB; memcpy(&buf[0],&ret_buf[0],CHSET_UART_LENGTH); ButtonDataSet(true); } void Atten_Wifi_DataSet(float value,uint8_t type) { uint8_t cnt = 0; uint8_t ret_buf[CHSET_UART_LENGTH] = {0,}; ret_buf[0] = 0xBE; ret_buf[1] = type; ret_buf[2] = CHSET_UARTDATA_LENGTH; if (value > 90) { value -= 90; ret_buf[3] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[4] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[5] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[6] = PE43711_Atten_Rx_DataCheck(value); } else if (value > 60) { value -= 60; PE43711_Atten_Rx_DataCheck(value); ret_buf[3] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[4] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[5] = PE43711_Atten_Rx_DataCheck(value); ret_buf[6] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data } else if (value > 30) { value -= 30; ret_buf[3] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data ret_buf[4] = PE43711_Atten_Rx_DataCheck(value); ret_buf[5] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data ret_buf[6] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data } else if (value >= 0) { ret_buf[3] = PE43711_Atten_Rx_DataCheck(value); ret_buf[4] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data ret_buf[5] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data ret_buf[6] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data } ret_buf[7] = STH30_CreateCrc(&ret_buf[Bluecell_Type],ret_buf[Bluecell_Length]+2); ret_buf[8] = 0xEB; memcpy(&buf[0],&ret_buf[0],CHSET_UART_LENGTH); // printf("ret :"); // for(int i = 0; i < buf[Bluecell_Length] +5; i++) // printf("%02x ",buf[i]); // printf("\r\n"); ButtonDataSet(true); } void Atten_30G_DataSet(float value,uint8_t type) { int cnt = 0; uint8_t ret_buf[9] = {0,}; ret_buf[0] = 0xBE; ret_buf[1] = type; ret_buf[2] = CHSET_UARTDATA_LENGTH - 1; if (value > 60) { value -= 60; ret_buf[3] = HMC939_ATTEN_30DB_VAL; ret_buf[4] = HMC939_ATTEN_30DB_VAL; ret_buf[5] = ADRF5720_Atten_Rx_DataCheck(value);; } else if (value >= 30) { value -= 30; ret_buf[3] = HMC939_ATTEN_30DB_VAL; ret_buf[4] = HMC939_Atten_Rx_DataCheck(value); ret_buf[5] = ADRF5720_ATTEN_0DB_VAL; } else if (value >= 0) { ret_buf[3] = HMC939_Atten_Rx_DataCheck(value); ret_buf[4] = HMC939_ATTEN_0DB_VAL; ret_buf[5] = ADRF5720_ATTEN_0DB_VAL; } ret_buf[6] = STH30_CreateCrc(&ret_buf[Bluecell_Type],ret_buf[Bluecell_Length]+2); ret_buf[7] = 0xEB; memcpy(&buf[0],&ret_buf[0],CHSET_UART_LENGTH - 1); ButtonDataSet(true); } void PE43711_Ach_atten_ctrl(uint8_t data,uint8_t Ch){ atten_ctrl pin; uint8_t i = 0; uint8_t temp = 0; // data = 4 * data; temp = (uint8_t)data; 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; // printf("\r\n=================%d======0x%x=======\r\n",Ch,temp); HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET); HAL_Delay(1); for(i = 0; i < 8; i++){ if((uint8_t)temp & 0x01){ HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA // printf("1"); } else{ HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA // printf("0"); } 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); temp >>= 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_Delay(1); 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); // printf("\r\n==============================\r\n"); } void PE43711_Bch_atten_ctrl(uint8_t data,uint8_t Ch){ atten_ctrl pin; uint8_t i = 0; uint8_t temp = 0; // data = 4 * data; temp = (uint8_t)data; pin.Clock_PIN = GPIO_PIN_12; pin.Data_PIN = GPIO_PIN_13; pin.LE_PIN = GPIO_PIN_10; 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; } HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET); pin.Port = GPIOG; HAL_Delay(1); for(i = 0; i < 8; i++){ if((uint8_t)temp & 0x01){ 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 } 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); temp >>= 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_Delay(1); if (Ch != 0) pin.Port = GPIOB; 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_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_DMA(&huart3, data,size); // for(uint8_t i = 0; i