// Init function void radio_control_impl_init(void) { sbus.frame_available = FALSE; sbus.status = SBUS_STATUS_UNINIT; // Set UART parameters (100K, 8 bits, 2 stops, even parity) uart_periph_set_bits_stop_parity(&SBUS_UART_DEV, UBITS_8, USTOP_2, UPARITY_EVEN); uart_periph_set_baudrate(&SBUS_UART_DEV, B100000); // Set polarity #ifdef RC_POLARITY_GPIO_PORT gpio_setup_output(RC_POLARITY_GPIO_PORT, RC_POLARITY_GPIO_PIN); RC_SET_POLARITY(RC_POLARITY_GPIO_PORT, RC_POLARITY_GPIO_PIN); #endif }
void sbus_common_init(struct Sbus *sbus_p, struct uart_periph *dev) { sbus_p->frame_available = false; sbus_p->status = SBUS_STATUS_UNINIT; // Set UART parameters (100K, 8 bits, 2 stops, even parity) uart_periph_set_bits_stop_parity(dev, UBITS_8, USTOP_2, UPARITY_EVEN); uart_periph_set_baudrate(dev, B100000); // Set polarity #ifdef RC_POLARITY_GPIO_PORT gpio_setup_output(RC_POLARITY_GPIO_PORT, RC_POLARITY_GPIO_PIN); RC_SET_POLARITY(RC_POLARITY_GPIO_PORT, RC_POLARITY_GPIO_PIN); #endif }
void sbus_common_init(struct Sbus *sbus_p, struct uart_periph *dev, gpio_port_t gpio_polarity_port, uint16_t gpio_polarity_pin) { sbus_p->frame_available = false; sbus_p->status = SBUS_STATUS_UNINIT; // Set UART parameters (100K, 8 bits, 2 stops, even parity) uart_periph_set_baudrate(dev, B100000); uart_periph_set_bits_stop_parity(dev, UBITS_8, USTOP_2, UPARITY_EVEN); // Try to invert RX data logic when available in hardware periph uart_periph_invert_data_logic(dev, true, false); // Set polarity (when not done in hardware, don't use both!) if (gpio_polarity_port != 0) { gpio_setup_output(gpio_polarity_port, gpio_polarity_pin); RC_SET_POLARITY(gpio_polarity_port, gpio_polarity_pin); } }
// Init function void radio_control_impl_init(void) { sbus.frame_available = FALSE; sbus.status = SBUS_STATUS_UNINIT; // Set UART parameters (100K, 8 bits, 2 stops, even parity) uart_periph_set_bits_stop_parity(&SBUS_UART_DEV, UBITS_8, USTOP_2, UPARITY_EVEN); uart_periph_set_baudrate(&SBUS_UART_DEV, B100000); // Set polarity #ifdef RC_POLARITY_GPIO_PORT gpio_setup_output(RC_POLARITY_GPIO_PORT, RC_POLARITY_GPIO_PIN); RC_SET_POLARITY(RC_POLARITY_GPIO_PORT, RC_POLARITY_GPIO_PIN); #endif // Register telemetry message #if PERIODIC_TELEMETRY register_periodic_telemetry(DOWNLINK_TELEMETRY, "PPM", send_sbus); #endif }