mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-20 23:05:19 +03:00
Merge branch 'softserial-enabled' of git://github.com/sherlockflight/cleanflight-dev into sherlockflight-softserial-enabled
This commit is contained in:
commit
8a7edb17ed
3 changed files with 19 additions and 5 deletions
|
@ -247,8 +247,8 @@ serialPort_t *openSerialPort(
|
|||
portOptions_t options)
|
||||
{
|
||||
serialPortUsage_t *serialPortUsage = findSerialPortUsageByIdentifier(identifier);
|
||||
if (serialPortUsage->function != FUNCTION_NONE) {
|
||||
// already in use
|
||||
if (!serialPortUsage || serialPortUsage->function != FUNCTION_NONE) {
|
||||
// not available / already in use
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -318,7 +318,7 @@ void closeSerialPort(serialPort_t *serialPort) {
|
|||
serialPortUsage->serialPort = NULL;
|
||||
}
|
||||
|
||||
void serialInit(serialConfig_t *initialSerialConfig)
|
||||
void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled)
|
||||
{
|
||||
uint8_t index;
|
||||
|
||||
|
@ -328,6 +328,19 @@ void serialInit(serialConfig_t *initialSerialConfig)
|
|||
|
||||
for (index = 0; index < SERIAL_PORT_COUNT; index++) {
|
||||
serialPortUsageList[index].identifier = serialPortIdentifiers[index];
|
||||
|
||||
if (!softserialEnabled) {
|
||||
if (0
|
||||
#ifdef USE_SOFTSERIAL1
|
||||
|| serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1
|
||||
#endif
|
||||
#ifdef USE_SOFTSERIAL2
|
||||
|| serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2
|
||||
#endif
|
||||
) {
|
||||
serialPortUsageList[index].identifier = SERIAL_PORT_NONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ extern uint32_t baudRates[];
|
|||
|
||||
// serial port identifiers are now fixed, these values are used by MSP commands.
|
||||
typedef enum {
|
||||
SERIAL_PORT_NONE = -1,
|
||||
SERIAL_PORT_USART1 = 0,
|
||||
SERIAL_PORT_USART2,
|
||||
SERIAL_PORT_USART3,
|
||||
|
|
|
@ -100,7 +100,7 @@ serialPort_t *loopbackPort;
|
|||
void printfSupportInit(void);
|
||||
void timerInit(void);
|
||||
void telemetryInit(void);
|
||||
void serialInit(serialConfig_t *initialSerialConfig);
|
||||
void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled);
|
||||
void mspInit(serialConfig_t *serialConfig);
|
||||
void cliInit(serialConfig_t *serialConfig);
|
||||
void failsafeInit(rxConfig_t *intialRxConfig);
|
||||
|
@ -191,7 +191,7 @@ void init(void)
|
|||
|
||||
timerInit(); // timer must be initialized before any channel is allocated
|
||||
|
||||
serialInit(&masterConfig.serialConfig);
|
||||
serialInit(&masterConfig.serialConfig, feature(FEATURE_SOFTSERIAL));
|
||||
|
||||
mixerInit(masterConfig.mixerMode, masterConfig.customMixer);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue