53 #if defined(BOARD_SOFTSERIAL_RX) && defined(BOARD_SOFTSERIAL_TX) 60 #include "Scheduler.h" 63 #define DEFAULT_TX_TIMEOUT 10000 67 #define SSI_RX_BUFF_SIZE 64 68 #define SSI_TX_BUFF_SIZE 64 69 #define SS_MAX_RX_BUFF (SSI_RX_BUFF_SIZE - 1) // RX buffer size 70 #define SS_MAX_TX_BUFF (SSI_TX_BUFF_SIZE - 1) // TX buffer size 76 SerialDriver( uint8_t tx_pin, uint8_t rx_pin,
bool inverseLogic)
77 :_inverse(inverseLogic)
88 ,
timer(rx_pp.timer_device)
89 , channel(rx_pp.timer_channel)
95 void begin(uint32_t b);
96 void begin(uint32_t baud, uint16_t rxS, uint16_t txS) {
begin(baud); }
108 int16_t
read()
override;
111 size_t write(uint8_t c);
123 volatile uint8_t bufferOverflow;
126 volatile int8_t rxBitCount;
127 volatile uint16_t receiveBufferWrite;
128 volatile uint16_t receiveBufferRead;
129 volatile uint8_t receiveBuffer[SSI_RX_BUFF_SIZE];
132 volatile int8_t txBitCount;
133 uint16_t transmitBufferWrite;
134 volatile uint16_t transmitBufferRead;
135 uint8_t transmitBuffer[SSI_RX_BUFF_SIZE];
153 inline void txEnableInterrupts() {
159 inline void txDisableInterrupts() {
171 #endif // defined(BOARD_SOFTSERIAL_RX) && defined(BOARD_SOFTSERIAL_TX) virtual void set_blocking_writes(bool blocking)=0
virtual bool tx_pending()=0
virtual void begin(uint32_t baud)=0
static uint8_t buffer[SRXL_FRAMELEN_MAX]
virtual bool is_initialized()=0
const stm32_pin_info PIN_MAP[BOARD_NR_GPIO_PINS]
virtual uint32_t txspace()=0
virtual size_t write(uint8_t)=0
static void timer_enable_irq(const timer_dev *dev, timer_interrupt_id interrupt)
Enable a timer interrupt.
static void timer_disable_irq(const timer_dev *dev, timer_interrupt_id interrupt)
Disable a timer interrupt.
virtual uint32_t available()=0
const struct TIM_Channel PWM_Channels[]
Stores STM32-specific information related to a given Maple pin.