static void serialInputPortActivate(softSerial_t *softSerial) { if (softSerial->port.options & SERIAL_INVERTED) { #ifdef STM32F1 IOConfigGPIO(softSerial->rxIO, IOCFG_IPD); #else IOConfigGPIO(softSerial->rxIO, IOCFG_AF_PP_PD); #endif } else { #ifdef STM32F1 IOConfigGPIO(softSerial->rxIO, IOCFG_IPU); #else IOConfigGPIO(softSerial->rxIO, IOCFG_AF_PP_UP); #endif } softSerial->rxActive = true; softSerial->isSearchingForStartBit = true; softSerial->rxBitIndex = 0; // Enable input capture #ifdef USE_HAL_DRIVER TIM_CCxChannelCmd(softSerial->timerHardware->tim, softSerial->timerHardware->channel, TIM_CCx_ENABLE); #else TIM_CCxCmd(softSerial->timerHardware->tim, softSerial->timerHardware->channel, TIM_CCx_Enable); #endif }
static void serialEnableCC(softSerial_t *softSerial) { #ifdef USE_HAL_DRIVER TIM_CCxChannelCmd(softSerial->timerHardware->tim, softSerial->timerHardware->channel, TIM_CCx_ENABLE); #else TIM_CCxCmd(softSerial->timerHardware->tim, softSerial->timerHardware->channel, TIM_CCx_Enable); #endif }
static void serialInputPortDeActivate(softSerial_t *softSerial) { // Disable input capture #ifdef USE_HAL_DRIVER TIM_CCxChannelCmd(softSerial->timerHardware->tim, softSerial->timerHardware->channel, TIM_CCx_DISABLE); #else TIM_CCxCmd(softSerial->timerHardware->tim, softSerial->timerHardware->channel, TIM_CCx_Disable); #endif IOConfigGPIO(softSerial->rxIO, IOCFG_IN_FLOATING); softSerial->rxActive = false; }