1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-21 15:25:36 +03:00

Merge branch 'softserial-enabled' of git://github.com/sherlockflight/cleanflight-dev into sherlockflight-softserial-enabled

This commit is contained in:
Dominic Clifton 2015-04-01 20:06:08 +01:00
commit 8a7edb17ed
3 changed files with 19 additions and 5 deletions

View file

@ -247,8 +247,8 @@ serialPort_t *openSerialPort(
portOptions_t options) portOptions_t options)
{ {
serialPortUsage_t *serialPortUsage = findSerialPortUsageByIdentifier(identifier); serialPortUsage_t *serialPortUsage = findSerialPortUsageByIdentifier(identifier);
if (serialPortUsage->function != FUNCTION_NONE) { if (!serialPortUsage || serialPortUsage->function != FUNCTION_NONE) {
// already in use // not available / already in use
return NULL; return NULL;
} }
@ -318,7 +318,7 @@ void closeSerialPort(serialPort_t *serialPort) {
serialPortUsage->serialPort = NULL; serialPortUsage->serialPort = NULL;
} }
void serialInit(serialConfig_t *initialSerialConfig) void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled)
{ {
uint8_t index; uint8_t index;
@ -328,6 +328,19 @@ void serialInit(serialConfig_t *initialSerialConfig)
for (index = 0; index < SERIAL_PORT_COUNT; index++) { for (index = 0; index < SERIAL_PORT_COUNT; index++) {
serialPortUsageList[index].identifier = serialPortIdentifiers[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;
}
}
} }
} }

View file

@ -50,6 +50,7 @@ extern uint32_t baudRates[];
// serial port identifiers are now fixed, these values are used by MSP commands. // serial port identifiers are now fixed, these values are used by MSP commands.
typedef enum { typedef enum {
SERIAL_PORT_NONE = -1,
SERIAL_PORT_USART1 = 0, SERIAL_PORT_USART1 = 0,
SERIAL_PORT_USART2, SERIAL_PORT_USART2,
SERIAL_PORT_USART3, SERIAL_PORT_USART3,

View file

@ -100,7 +100,7 @@ serialPort_t *loopbackPort;
void printfSupportInit(void); void printfSupportInit(void);
void timerInit(void); void timerInit(void);
void telemetryInit(void); void telemetryInit(void);
void serialInit(serialConfig_t *initialSerialConfig); void serialInit(serialConfig_t *initialSerialConfig, bool softserialEnabled);
void mspInit(serialConfig_t *serialConfig); void mspInit(serialConfig_t *serialConfig);
void cliInit(serialConfig_t *serialConfig); void cliInit(serialConfig_t *serialConfig);
void failsafeInit(rxConfig_t *intialRxConfig); void failsafeInit(rxConfig_t *intialRxConfig);
@ -191,7 +191,7 @@ void init(void)
timerInit(); // timer must be initialized before any channel is allocated timerInit(); // timer must be initialized before any channel is allocated
serialInit(&masterConfig.serialConfig); serialInit(&masterConfig.serialConfig, feature(FEATURE_SOFTSERIAL));
mixerInit(masterConfig.mixerMode, masterConfig.customMixer); mixerInit(masterConfig.mixerMode, masterConfig.customMixer);