1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 21:05:35 +03:00
betaflight/src/serial_common.c
Dominic Clifton a7e4c859bd decouple cli/msp from each other. relocated non-msp code into
serial_common.c/h. decouple runtime_config from serial ports.  decouple
buzzer from serial ports.  decouple opening of the main serial port from
the msp code.  decouple serial rx providers from runtime_config.  rename
core_t to serialPorts_t since it only contained serial ports.  It's now
clear which files use serial ports based on the header files they
include.
2014-04-19 01:01:31 +01:00

57 lines
1.1 KiB
C

#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include "platform.h"
#include "drivers/system_common.h"
#include "drivers/serial_common.h"
#include "drivers/serial_uart.h"
#include "serial_cli.h"
#include "serial_msp.h"
#include "serial_common.h"
static serialConfig_t *serialConfig;
serialPorts_t serialPorts;
void serialInit(serialConfig_t *initialSerialConfig)
{
serialConfig = initialSerialConfig;
resetMainSerialPort();
mspInit();
}
void resetMainSerialPort(void)
{
openMainSerialPort(serialConfig->port1_baudrate);
}
void openMainSerialPort(uint32_t baudrate)
{
serialPorts.mainport = uartOpen(USART1, NULL, baudrate, MODE_RXTX);
}
void handleSerial(void)
{
// in cli mode, all serial stuff goes to here. enter cli mode by sending #
if (cliMode) {
cliProcess();
return;
}
mspProcess();
}
// evaluate all other incoming serial data
void evaluateOtherData(uint8_t sr)
{
if (sr == '#')
cliProcess();
else if (sr == serialConfig->reboot_character)
systemReset(true); // reboot to bootloader
}