1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 14:25:20 +03:00

Merge pull request #4018 from jflyper/bdfev-softserial-avoid-n-channel-for-rx

SOFTSERIAL Avoid using N-Channel for RX function
This commit is contained in:
Martin Budden 2017-08-31 07:39:19 +01:00 committed by GitHub
commit 6eb843fa04

View file

@ -254,9 +254,10 @@ serialPort_t *openSoftSerial(softSerialPortIndex_e portIndex, serialReceiveCallb
if (options & SERIAL_BIDIR) {
// If RX and TX pins are both assigned, we CAN use either with a timer.
// However, for consistency with hardware UARTs, we only use TX pin,
// and this pin must have a timer.
if (!timerTx)
// and this pin must have a timer, and it should not be N-Channel.
if (!timerTx || (timerTx->output & TIMER_OUTPUT_N_CHANNEL)) {
return NULL;
}
softSerial->timerHardware = timerTx;
softSerial->txIO = txIO;
@ -264,9 +265,10 @@ serialPort_t *openSoftSerial(softSerialPortIndex_e portIndex, serialReceiveCallb
IOInit(txIO, OWNER_SERIAL_TX, RESOURCE_INDEX(portIndex + RESOURCE_SOFT_OFFSET));
} else {
if (mode & MODE_RX) {
// Need a pin & a timer on RX
if (!(tagRx && timerRx))
// Need a pin & a timer on RX. Channel should not be N-Channel.
if (!timerRx || (timerRx->output & TIMER_OUTPUT_N_CHANNEL)) {
return NULL;
}
softSerial->rxIO = rxIO;
softSerial->timerHardware = timerRx;