gpio_config(&gpio_config_t config) | 一站式配置 GPIO(模式 / 上下拉 / 中断) | 结构体参数:
pin_bit_mask:引脚掩码(如1ULL<<GPIO_NUM_2)
mode:GPIO_MODE_INPUT/OUTPUT
pull_up_en:GPIO_PULLUP_ENABLE/DISABLE |
gpio_set_level(gpio_num_t pin, uint32_t level) | 设置 GPIO 输出电平(0/1) | 无需手动使能时钟,直接调用 |
gpio_get_level(gpio_num_t pin) | 读取 GPIO 输入电平 | |
gpio_install_isr_service(0) | 安装 GPIO 中断服务 | 全局中断初始化,仅需调用一次 |
gpio_isr_handler_add(pin, isr_handler, arg) | 绑定 GPIO 中断处理函数 | 中断函数需为void isr_handler(void* arg) |
| FreeRTOS 任务管理 | | |
xTaskCreate(task_func, name, stack_size, arg, prio, handle) | 创建任务 | stack_size:ESP32 建议≥2048 字节
prio:优先级(0~31,数值越高优先级越高) |
vTaskDelete(TaskHandle_t handle) | 删除任务 | NULL表示删除当前任务 |
xQueueCreate(length, item_size) | 创建队列(任务间通信) | length:队列长度
item_size:单个数据字节数 |
xQueueSend(queue, &data, timeout) | 发送数据到队列 | timeout:超时时间(pdMS_TO_TICKS (100)) |
xQueueReceive(queue, &data, timeout) | 从队列接收数据 | - |
xSemaphoreCreateBinary() | 创建二值信号量 | - |
xSemaphoreGive(sem) | 释放信号量 | - |
xSemaphoreTake(sem, timeout) | 获取信号量 | - |
| UART 串口函数 | | |
uart_param_config(uart_num_t uart, &uart_config_t) | 配置串口参数 | 结构体参数:
baud_rate:波特率(115200)
data_bits:UART_DATA_8_BITS
parity:UART_PARITY_DISABLE |
uart_set_pin(uart_num, tx, rx, rts, cts) | 映射串口引脚 | ESP32 支持任意 GPIO 映射(如 UART0_TX=GPIO16) |
uart_driver_install(uart_num, rx_buf_size, tx_buf_size, 0, NULL, 0) | 安装串口驱动 | rx_buf_size:接收缓冲区大小(如 1024) |
uart_write_bytes(uart_num, data, len) | 发送字节数据 | 阻塞式发送 |
uart_read_bytes(uart_num, buf, len, timeout) | 读取字节数据 | timeout:超时时间(pdMS_TO_TICKS (100)) |
| RMT 外设函数 | | |
rmt_new_tx_channel(&tx_chan_config, &rmt_chan) | 创建 RMT TX 通道 | 结构体参数:
gpio_num:输出引脚
resolution_hz:时钟分辨率(如 10MHz) |
rmt_new_copy_encoder(&config, &encoder) | 创建 copy 编码器(ESP-IDF v5.1+) | 替代弃用的rmt_new_encoder |
rmt_transmit(chan, encoder, data, len, &tx_config) | 发送 RMT 符号数据 | - |
rmt_enable(rmt_chan) | 启用 RMT 通道 | - |
| ADC 模拟采集函数 | | |
adc_oneshot_new_unit(&adc_config, &adc_unit) | 创建 ADC 单元 | ESP32-C6 仅支持 ADC1(GPIO0~6) |
adc_oneshot_config_channel(adc_unit, chan, &config) | 配置 ADC 通道 | 结构体参数:
atten:衰减系数(如ADC_ATTEN_DB_11,测量 0~3.3V)
bitwidth:ADC_BITWIDTH_12 |
adc_oneshot_read(adc_unit, chan, &raw_data) | 读取 ADC 原始值 | 原始值范围:0~4095(12 位) |
| Wi-Fi 核心函数 | | |
esp_wifi_init(&wifi_init_config_t) | 初始化 Wi-Fi 驱动 | - |
esp_wifi_set_mode(WIFI_MODE_STA/AP) | 设置 Wi-Fi 模式(STA/AP) | STA:连接路由器;AP:自建热点 |
esp_wifi_set_config(interface, &wifi_config) | 设置 Wi-Fi 参数 | STA 模式:配置 SSID / 密码
wifi_config.sta.ssid:路由器名称
wifi_config.sta.password:密码 |
esp_wifi_start() | 启动 Wi-Fi | - |
esp_wifi_connect() | STA 模式连接路由器 | - |