ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ESP32学习(外设-UART)

2022-02-22 20:00:23  阅读:244  来源: 互联网

标签:UART ESP32 uart int num 串口 外设 size


/**
 * @brief UART configuration parameters for uart_param_config function
 */
typedef struct {
    int baud_rate;                      /*!< UART baud rate*/
    uart_word_length_t data_bits;       /*!< UART byte size*/
    uart_parity_t parity;               /*!< UART parity mode*/
    uart_stop_bits_t stop_bits;         /*!< UART stop bits*/
    uart_hw_flowcontrol_t flow_ctrl;    /*!< UART HW flow control mode (cts/rts)*/
    uint8_t rx_flow_ctrl_thresh;        /*!< UART HW RTS threshold*/
    union {
        uart_sclk_t source_clk;         /*!< UART source clock selection */
        bool use_ref_tick  __attribute__((deprecated)); /*!< Deprecated method to select ref tick clock source, set source_clk field instead */
    };
} uart_config_t;

ESP32总共有三个串口分别是UART_NUM0,UART_NUM1,UART_NUM2。串口0作为软件日志打印接口,其他串口可以为我们所用,比较灵活的是

所有串口的IO都可以自由设置。上面结构体是串口配置结构体包含了串口的波特率,数据长度,奇偶检验,停止位,硬件流控制,还有时钟源。

esp_err_t uart_driver_install(uart_port_t uart_num, int rx_buffer_size, int tx_buffer_size, int queue_size, QueueHandle_t* uart_queue, int intr_alloc_flags);

串口驱动安装函数,参数有串口号,接收缓存大小,发送缓存大小,队列大小,队列句柄,中断标志位

uart_param_config(uart_port_t uart_num, const uart_config_t *uart_config);

串口参数配置函数,参数有串口号,以及串口参数配置结构体

uart_set_pin(uart_port_t uart_num, int tx_io_num, int rx_io_num, int rts_io_num, int cts_io_num)

串口引脚设置,可以设置串口4个引脚,一般设置TX RX即可。

int uart_read_bytes(uart_port_t uart_num, void *buf, uint32_t length, TickType_t ticks_to_wait)
int uart_write_bytes(uart_port_t uart_num, const void *src, size_t size)

第一个函数是读函数,参数有串口号,缓存地址,缓存长度,等待时间

第二个函数是写函数,也就是发送函数,参数有串口号,数据源首地址,发送数据长度

 

标签:UART,ESP32,uart,int,num,串口,外设,size
来源: https://www.cnblogs.com/lishengaha/p/15924696.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有