mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 21:05:35 +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) {
|
if ((options & SERIAL_BIDIR) && txIO) {
|
||||||
//mode,speed,otype,pupd
|
//mode,speed,otype,pupd
|
||||||
|
#ifndef USE_NONCOMPLIANT_SMARTAUDIO
|
||||||
ioConfig_t ioCfg = IO_CONFIG(
|
ioConfig_t ioCfg = IO_CONFIG(
|
||||||
GPIO_MODE_MUX,
|
GPIO_MODE_MUX,
|
||||||
GPIO_DRIVE_STRENGTH_STRONGER,
|
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) || (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
|
((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));
|
IOInit(txIO, OWNER_SERIAL_TX, RESOURCE_INDEX(device));
|
||||||
IOConfigGPIOAF(txIO, ioCfg, uartdev->tx.af);
|
IOConfigGPIOAF(txIO, ioCfg, uartdev->tx.af);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -497,7 +497,7 @@ static void saReceiveFrame(uint8_t c)
|
||||||
static void saSendFrame(uint8_t *buf, int len)
|
static void saSendFrame(uint8_t *buf, int len)
|
||||||
{
|
{
|
||||||
if (!IS_RC_MODE_ACTIVE(BOXVTXCONTROLDISABLE)) {
|
if (!IS_RC_MODE_ACTIVE(BOXVTXCONTROLDISABLE)) {
|
||||||
#ifndef AT32F4
|
#ifdef USE_NONCOMPLIANT_SMARTAUDIO
|
||||||
switch (smartAudioSerialPort->identifier) {
|
switch (smartAudioSerialPort->identifier) {
|
||||||
case SERIAL_PORT_SOFTSERIAL1:
|
case SERIAL_PORT_SOFTSERIAL1:
|
||||||
case SERIAL_PORT_SOFTSERIAL2:
|
case SERIAL_PORT_SOFTSERIAL2:
|
||||||
|
@ -509,14 +509,14 @@ static void saSendFrame(uint8_t *buf, int len)
|
||||||
serialWrite(smartAudioSerialPort, 0x00); // Generate 1st start byte
|
serialWrite(smartAudioSerialPort, 0x00); // Generate 1st start byte
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif //AT32F4
|
#endif // USE_NONCOMPLIANT_SMARTAUDIO
|
||||||
|
|
||||||
for (int i = 0 ; i < len ; i++) {
|
for (int i = 0 ; i < len ; i++) {
|
||||||
serialWrite(smartAudioSerialPort, buf[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.
|
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++;
|
saStat.pktsent++;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue