mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 21:05:35 +03:00
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.
57 lines
1.1 KiB
C
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
|
|
}
|
|
|