пример ini тюнера
void iniTunerPca(void) {//тюнер и дпф
HAL_GPIO_WritePin(i2c_switcher_GPIO_Port, i2c_switcher_Pin, GPIO_PIN_RESET);//переключатель РСА9515 1=внутр 0=наружу
tx.iniTunerOK = YES;
tx.yn = NO;
tx.needToDrawYN = YES;
tx.micYN = YES;// питание на мик
BSP_LCD_SetFont(&Font8);
uint16_t y = 10;
//lpf
uint8_t bufer[2] = {0b00000011, 0x0};//3-регистр инициализации портов если 0 то это выход, 0-все порты на выход
if (HAL_I2C_Master_Transmit(&hi2c3, TUNER_PCA9554_ADR_WRITE, (uint8_t *) &bufer, (uint16_t) 2,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(3, y, (uint8_t *) "ini-TX 4", LEFT_MODE);
tx.iniTunerOK = NO;
};
uint8_t buferW[2] = {0b00000001, 0x0}; //обнуляем все порты в 0 , RX
if (HAL_I2C_Master_Transmit(&hi2c3, TUNER_PCA9554_ADR_WRITE, (uint8_t *) &buferW, (uint16_t) 2,
(uint32_t) 500) !=
HAL_OK) {
BSP_LCD_DisplayHStringAt(50, y, (uint8_t *) "ini-TX4-0", LEFT_MODE);
tx.iniTunerOK = NO;
};
//tuner
uint8_t buferT[3] = {0b00000110, 0x0,
0x0};//6-регистр инициализации портов если 0 то это выход, 0-все порты на выход
if (HAL_I2C_Master_Transmit(&hi2c3, TUNER_PCA9555_ADR_WRITE, (uint8_t *) &buferT, (uint16_t) 3,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(100, y, (uint8_t *) "ini-TX-5", LEFT_MODE);
tx.iniTunerOK = NO;
};
uint8_t buferWT[3] = {0b00000010, 0x0, 0x0}; //обнуляем все порты в 0 (ничего не выбрано)
if (HAL_I2C_Master_Transmit(&hi2c3, TUNER_PCA9555_ADR_WRITE, (uint8_t *) &buferWT, (uint16_t) 3,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(150, y, (uint8_t *) "ini-TX-5-0", LEFT_MODE);
tx.iniTunerOK = NO;
};
//дпф
band.iniBpfOK = YES;
uint8_t buferD[3] = {0b00000110, 0x0,
0x0};//6-регистр инициализации портов если 0 то это выход, 0-все порты на выход
if (HAL_I2C_Master_Transmit(&hi2c3, BPF_PCA9555_ADR_WRITE, (uint8_t *) &buferD, (uint16_t) 3,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(100, y, (uint8_t *) "--BPF-INI-ERR-", LEFT_MODE);
band.iniBpfOK = NO;
};
uint8_t buferWD[3] = {0b00000010, 0x0, 0x0}; //обнуляем все порты в 0 (ничего не выбрано)
if (HAL_I2C_Master_Transmit(&hi2c3, BPF_PCA9555_ADR_WRITE, (uint8_t *) &buferWD, (uint16_t) 3,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(150, y + 40, (uint8_t *) "--BPF-INI-ERR-", LEFT_MODE);
band.iniBpfOK = NO;
};
//TX PCA9555
uint8_t buferv[3] = {0b00000110, 0b11111110, //кроме пина cw тон, все на входы
0b11000111};//6-регистр инициализации портов если 0 то это выход, 0-все порты на выход
if (HAL_I2C_Master_Transmit(&hi2c3, TX_PCA9555_ADR_WRITE, (uint8_t *) &buferv, (uint16_t) 3,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(100, y, (uint8_t *) "--tx-INI-ERR-", LEFT_MODE);
};
uint8_t buferWv[3] = {0b00000010, 0b00000001, 0b10001000}; // порты в 0 кроме пина cw тон
if (HAL_I2C_Master_Transmit(&hi2c3, TX_PCA9555_ADR_WRITE, (uint8_t *) &buferWv, (uint16_t) 3,
(uint32_t) 500) != HAL_OK) {
BSP_LCD_DisplayHStringAt(150, y + 40, (uint8_t *) "--tx-INI-ERR-", LEFT_MODE);
};
// buferWv[2]=0b0000000;// 1/6 reset adau 1=нормальная работа
// //1/5 en adau
// //1/4 tx on
// //1/3 mic power
// if (HAL_I2C_Master_Transmit(&hi2c3, TX_PCA9555_ADR_WRITE, (uint8_t *) &buferWv, (uint16_t) 3,
// (uint32_t) 500) != HAL_OK) {
// BSP_LCD_DisplayHStringAt(150, y+40, (uint8_t *) "--tx-INI-ERR-", LEFT_MODE);
// };
// 18900
//15000
}