static int h4_open(void) { BT_DBG(""); uart_irq_rx_disable(h4_dev); uart_irq_tx_disable(h4_dev); #if defined(CONFIG_BT_NRF51_PM) if (nrf51_init(h4_dev) < 0) { return -EIO; } #else h4_discard(h4_dev, 32); #endif uart_irq_callback_set(h4_dev, bt_uart_isr); k_thread_create(&rx_thread_data, rx_thread_stack, K_THREAD_STACK_SIZEOF(rx_thread_stack), rx_thread, NULL, NULL, NULL, K_PRIO_COOP(CONFIG_BT_RX_PRIO), 0, K_NO_WAIT); return 0; }
static void test_by_irq(struct device *dev) { char data; uart_irq_callback_set(dev, interrupt_handler); write_buf_irq(dev, banner1, strlen(banner1)); read_char_irq(dev, &data); write_buf_irq(dev, banner2, strlen(banner2)); write_buf_irq(dev, &data, sizeof(data)); write_buf_irq(dev, "\n", 1); }
static void console_input_init(void) { uint8_t c; uart_irq_rx_disable(uart_console_dev); uart_irq_tx_disable(uart_console_dev); uart_irq_callback_set(uart_console_dev, uart_console_isr); /* Drain the fifo */ while (uart_irq_rx_ready(uart_console_dev)) { uart_fifo_read(uart_console_dev, &c, 1); } uart_irq_rx_enable(uart_console_dev); }
static void uart_pipe_setup(struct device *uart) { uint8_t c; uart_irq_rx_disable(uart); uart_irq_tx_disable(uart); /* Drain the fifo */ while (uart_fifo_read(uart, &c, 1)) { continue; } uart_irq_callback_set(uart, uart_pipe_isr); uart_irq_rx_enable(uart); }
static int h5_open(void) { BT_DBG(""); uart_irq_rx_disable(h5_dev); uart_irq_tx_disable(h5_dev); bt_uart_drain(h5_dev); uart_irq_callback_set(h5_dev, bt_uart_isr); h5_init(); uart_irq_rx_enable(h5_dev); return 0; }
static int h4_open(void) { BT_DBG(""); uart_irq_rx_disable(h4_dev); uart_irq_tx_disable(h4_dev); /* Drain the fifo */ while (uart_irq_rx_ready(h4_dev)) { unsigned char c; uart_fifo_read(h4_dev, &c, 1); } uart_irq_callback_set(h4_dev, bt_uart_isr); uart_irq_rx_enable(h4_dev); return 0; }
static int h4_open(void) { BT_DBG(""); uart_irq_rx_disable(h4_dev); uart_irq_tx_disable(h4_dev); #if defined(CONFIG_BLUETOOTH_NRF51_PM) if (nrf51_init(h4_dev) < 0) { return -EIO; } #else bt_uart_drain(h4_dev); #endif uart_irq_callback_set(h4_dev, bt_uart_isr); uart_irq_rx_enable(h4_dev); return 0; }
int main(int argc, char const *argv[]) { int ret; printf("start buffers: %d, size=%d total size=%d\n", sizeof(buf_pool)/sizeof(uart_buf_t), sizeof(uart_buf_t), sizeof(buf_pool)); uart_dev = device_get_binding(CONFIG_CDC_ACM_PORT_NAME); if (uart_dev == NULL) { printf("%s: error\n", __FUNCTION__); return 0; } ret = uart_line_ctrl_set(uart_dev, LINE_CTRL_BAUD_RATE, 115200); if (ret) printf("Baudrate set failed %d\n", ret); k_sleep(1000); uart_irq_rx_disable(uart_dev); uart_irq_tx_disable(uart_dev); /* drain the fifo */ uint8_t c; while(uart_fifo_read(uart_dev, &c, 1)) { continue; } uart_irq_callback_set(uart_dev, interrupt_handler); uart_irq_rx_enable(uart_dev); read_and_echo_data(uart_dev); return 0; }
void main(void) { struct device *dev; u32_t baudrate, dtr = 0; int ret; dev = device_get_binding(CONFIG_CDC_ACM_PORT_NAME); if (!dev) { SYS_LOG_ERR("CDC ACM device not found"); return; } SYS_LOG_DBG("Wait for DTR"); while (1) { uart_line_ctrl_get(dev, LINE_CTRL_DTR, &dtr); if (dtr) break; } uart_dev = dev; SYS_LOG_DBG("DTR set, continue"); #if CONFIG_DCD_DSR /* They are optional, we use them to test the interrupt endpoint */ ret = uart_line_ctrl_set(dev, LINE_CTRL_DCD, 1); if (ret) printk("Failed to set DCD, ret code %d\n", ret); ret = uart_line_ctrl_set(dev, LINE_CTRL_DSR, 1); if (ret) printk("Failed to set DSR, ret code %d\n", ret); /* Wait 1 sec for the host to do all settings */ sys_thread_busy_wait(1000000); #endif ret = uart_line_ctrl_get(dev, LINE_CTRL_BAUD_RATE, &baudrate); if (ret) printk("Failed to get baudrate, ret code %d\n", ret); else printk("Baudrate detected: %d\n", baudrate); SYS_LOG_INF("USB serial initialized"); /* Initialize net_pkt */ net_pkt_init(); /* Initialize RX queue */ init_rx_queue(); /* Initialize TX queue */ init_tx_queue(); /* Initialize ieee802154 device */ if (!init_ieee802154()) { SYS_LOG_ERR("Unable to initialize ieee802154"); return; }; uart_irq_callback_set(dev, interrupt_handler); /* Enable rx interrupts */ uart_irq_rx_enable(dev); /* Enable tx interrupts */ uart_irq_tx_enable(dev); }