mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 12:55:19 +03:00
[4.5.2] Fix SA for holybro on AT32F4 (#14246)
* Fix SA on softserial for AT32 * Add another macro * fix typo
This commit is contained in:
parent
28e9df19d3
commit
5f6e00d904
2 changed files with 13 additions and 4 deletions
|
@ -387,12 +387,21 @@ uartPort_t *serialUART(UARTDevice_e device, uint32_t baudRate, portMode_e mode,
|
|||
|
||||
if ((options & SERIAL_BIDIR) && txIO) {
|
||||
//mode,speed,otype,pupd
|
||||
#ifndef USE_NONCOMPLIANT_SMARTAUDIO
|
||||
ioConfig_t ioCfg = IO_CONFIG(
|
||||
GPIO_MODE_MUX,
|
||||
GPIO_DRIVE_STRENGTH_STRONGER,
|
||||
((options & SERIAL_INVERTED) || (options & SERIAL_BIDIR_PP) || (options & SERIAL_BIDIR_PP_PD)) ? GPIO_OUTPUT_PUSH_PULL : GPIO_OUTPUT_OPEN_DRAIN,
|
||||
((options & SERIAL_INVERTED) || (options & SERIAL_BIDIR_PP_PD)) ? GPIO_PULL_DOWN : GPIO_PULL_UP
|
||||
);
|
||||
#else
|
||||
ioConfig_t ioCfg = IO_CONFIG(
|
||||
GPIO_MODE_MUX,
|
||||
GPIO_DRIVE_STRENGTH_STRONGER,
|
||||
((options & SERIAL_INVERTED) || (options & SERIAL_BIDIR_PP) || (options & SERIAL_BIDIR_PP_PD)) ? GPIO_OUTPUT_PUSH_PULL : GPIO_OUTPUT_OPEN_DRAIN,
|
||||
(options & SERIAL_INVERTED) ? GPIO_PULL_DOWN : GPIO_PULL_UP
|
||||
);
|
||||
#endif
|
||||
IOInit(txIO, OWNER_SERIAL_TX, RESOURCE_INDEX(device));
|
||||
IOConfigGPIOAF(txIO, ioCfg, uartdev->tx.af);
|
||||
} else {
|
||||
|
|
|
@ -497,7 +497,7 @@ static void saReceiveFrame(uint8_t c)
|
|||
static void saSendFrame(uint8_t *buf, int len)
|
||||
{
|
||||
if (!IS_RC_MODE_ACTIVE(BOXVTXCONTROLDISABLE)) {
|
||||
#ifndef AT32F4
|
||||
#ifdef USE_NONCOMPLIANT_SMARTAUDIO
|
||||
switch (smartAudioSerialPort->identifier) {
|
||||
case SERIAL_PORT_SOFTSERIAL1:
|
||||
case SERIAL_PORT_SOFTSERIAL2:
|
||||
|
@ -509,14 +509,14 @@ static void saSendFrame(uint8_t *buf, int len)
|
|||
serialWrite(smartAudioSerialPort, 0x00); // Generate 1st start byte
|
||||
break;
|
||||
}
|
||||
#endif //AT32F4
|
||||
#endif // USE_NONCOMPLIANT_SMARTAUDIO
|
||||
|
||||
for (int i = 0 ; i < len ; i++) {
|
||||
serialWrite(smartAudioSerialPort, buf[i]);
|
||||
}
|
||||
#ifdef USE_AKK_SMARTAUDIO
|
||||
#ifdef USE_AKK_SMARTAUDIO
|
||||
serialWrite(smartAudioSerialPort, 0x00); // AKK/RDQ SmartAudio devices can expect an extra byte due to manufacturing errors.
|
||||
#endif // USE_AKK_SMARTAUDIO
|
||||
#endif // USE_AKK_SMARTAUDIO
|
||||
|
||||
saStat.pktsent++;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue