1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 04:45:24 +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:
Mark Haslinghuis 2025-03-11 16:30:13 +01:00 committed by GitHub
parent 28e9df19d3
commit 5f6e00d904
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View file

@ -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 {

View file

@ -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 {