美文网首页
esp8266 RN8209C 串口

esp8266 RN8209C 串口

作者: 昨天剩下的一杯冷茶 | 来源:发表于2019-09-27 15:40 被阅读0次

1、 串口初始化

串口参数根据自己实际情况调整,我的串口是为控制RN8209C,所以设置偶检验,4800波特率。

void RN8209_uart_init(void)
{
    uart_config_t uart_config = {
        .baud_rate = 4800,
        .data_bits = UART_DATA_8_BITS,
        .parity    = UART_PARITY_EVEN,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE
    };
    
    uart_param_config(UART_NUM_0, &uart_config);
    
    uart_driver_install(UART_NUM_0, 256, 0, 0, NULL);

}

2、 串口发送函数

void RN8209_uart_tx(uint8_t *buf,uint8_t len)
{
    //uart_flush_input(UART_NUM_0);
    uart_write_bytes(UART_NUM_0,(const char*)buf,len);
    uart_wait_tx_done(UART_NUM_0,portMAX_DELAY);

}

3、 串口接收函数
接收函数参数1:
接收函数参数2:串口的数据缓存起来了,你现在要用多大的BUF去获取换缓冲的数据。
接收函数参数3:BUF的大小
接收函数参数4:等待的时间

void RN8209_uart_rx(uint8_t *buf, uint8_t *len)
{
    uint8_t temp_buf[20];
    len[0] = uart_read_bytes(UART_NUM_0,temp_buf,20,0);
    memcpy(buf, temp_buf, len[0] );
    //ESP_LOGI(TAG, "len:%d-0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X\n\n",len[0],buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7]);
}

官方的串口代码封装的还可以,如果对实时性要求不高的话可以将就用。

相关文章

网友评论

      本文标题:esp8266 RN8209C 串口

      本文链接:https://www.haomeiwen.com/subject/tehauctx.html