uart

使用的库

  • "driver/uart.h"
  • "esp_log.h"
  • "esp_err.h"

初始化

  • uart_param_config() 函数配置uart信息
    使用UART0请留意是否被终端占用
  • uart_set_pin() 设置GPIO
    不用的接口赋值 -1
  • uart_driver_install() 设置接受队列,发送与接收缓冲区大小
    发送缓冲区可以为0,发送时函数阻塞。若不为零,必须满足缓冲区大小大于等于UART_HW_FIFO_LEN
    接收缓冲区大小必须大于等于UART_HW_FIFO_LEN
  • uart_set_rx_timeout() 设置超时时间

示例

C
void uart1Init()
{
    uart_config_t UartConfig = {
        .baud_rate = baudrate, /*TODO 自行确认波特率*/
        .data_bits = UART_DATA_8_BITS,
        .flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
        //.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
        .parity = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .rx_flow_ctrl_thresh = 1,
    };
    ESP_ERROR_CHECK(uart_param_config(UART_NUM_1, &UartConfig));
    uart_set_pin(UART_NUM_1, UART1_TXD, UART1_RXD, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);/*TODO 自行更换GPIO绑定*/
    uart_driver_install(UART_NUM_1, 512, 512, 10, &Uart1Queue, 0);/*TODO 自行更换队列句柄*/
    uart_set_rx_timeout(UART_NUM_1,4);
}

发送

使用uart_write_bytes()发送数据

示例

C
uart_write_bytes(UART_NUM_1, (const char *)data, length);

接收

  • 使用xQueueReceive()接收队列信息,并使用uart_event_t类型变量接住
  • 判断信息类型,若为UART_DATA则接收

示例

C
void uart1EventTask()
{
    uart_event_t UartEvent;
    uint8_t RecvBuf[520];
    size_t RecvLen = 0;
    while (true) {
        if (xQueueReceive(Uart1Queue,&UartEvent,portMAX_DELAY)) {
            switch (UartEvent.type) {
                case UART_DATA:
                    uart_get_buffered_data_len(UART_NUM_1,&RecvLen);
                    if (RecvLen > 0) {
                        RecvLen = uart_read_bytes(UART_NUM_1,RecvBuf,RecvLen,0);
                        RecvBuf[RecvLen] = 0;
                        /*TODO 接收后的动作*/
                    }
                    break;
                    default:
                    break;
            }
        }
    }
}

评论

  1. Julius
    Android Chrome 136.0.0.0
    1 年前
    2025-5-14 17:22:49

    为了和你一起穿越世界的荒芜,
    为了和你一起面对死亡的恐怖,
    为了目睹真理为了丢掉怯懦,
    我与你同行。

    为了你我抛弃了我的王国我的秘密,
    抛弃了我短暂的黑夜我幽幽的安谧,
    抛弃了我浑圆的珍珠和东方的诱惑,
    抛弃了我的明镜我的生活我的形象,
    抛弃了天堂的花园。

    此地外面的灯火再没有凝重的白昼面纱,
    再没有我顾盼自己裸体的镜子,
    而荒芜被称作时间。

    • Avatar photo
      博主
      Julius
      Windows Edge 136.0.0.0
      1 年前
      2025-5-14 18:53:06

      Ciallo~(∠・ω< )⌒★

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇