chatgpt: 用纯c 对 esp32编程, 串口输出hello world 完整代码

以下是一个简单的在ESP32上使用纯C语言通过UART串口输出"Hello, World!"的完整代码示例。此示例假设您使用的是ESP-IDF开发框架

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"
#include "esp_log.h"
#include <string.h>
#include "driver/gpio.h"

#define UART_NUM UART_NUM_1  // 使用UART1
#define TXD_PIN (GPIO_NUM_17) // 发送数据的引脚
#define RXD_PIN (GPIO_NUM_16) // 接收数据的引脚(本例中未使用)

void init_uart() {
    const uart_config_t uart_config = {
        .baud_rate = 115200, // 波特率
        .data_bits = UART_DATA_8_BITS, // 数据位
        .parity = UART_PARITY_DISABLE, // 无奇偶校验
        .stop_bits = UART_STOP_BITS_1, // 停止位
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, // 无流控制
        .source_clk = UART_SCLK_APB, // 使用APB时钟源
    };
    // 配置UART参数
    uart_param_config(UART_NUM, &uart_config);
    // 设置UART引脚
    uart_set_pin(UART_NUM, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
    // 安装UART驱动程序
    uart_driver_install(UART_NUM, 1024 * 2, 0, 0, NULL, 0);
}

void app_main() {
    // 初始化UART
    init_uart();

    // 要发送的字符串
    const char* message = "Hello, World!\n";

    while (1) {
        // 发送字符串到串口
        uart_write_bytes(UART_NUM, message, strlen(message));
        // 延时1秒
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

此程序已成功刷入esp32模块

 

代码解释

  1. 包含头文件freertos/FreeRTOS.hfreertos/task.h用于FreeRTOS任务管理,driver/uart.h用于UART驱动,esp_log.h用于日志记录。

  2. 定义宏:定义了使用的UART端口号(UART_NUM_1)、发送引脚(TXD_PIN)和接收引脚(RXD_PIN)。可以根据需要更改引脚配置。

  3. 初始化UART

    • 配置UART参数(波特率、数据位、奇偶校验、停止位等)。
    • 设置UART的引脚。
    • 安装UART驱动程序。
  4. app_main函数:这是ESP-IDF项目的入口点。

    • 初始化UART。
    • 定义要发送的字符串“Hello, World!\n”。
    • 进入一个无限循环,每秒通过UART发送字符串。

注意事项

  • 请根据您的开发板或模块的引脚布局,调整TXD_PINRXD_PIN的定义。
  • 确保ESP-IDF环境已正确设置,并且板子的UART端口与PC连接,以便在终端上看到输出。

如果有其他问题或需要进一步的说明,请随时告诉我!

∥--------

根据chatgpt这个模板,感觉esp32 就是一个带操作系统的pc.

下一部就用esp32控制温湿度传感器,读取数据在数码管显示。

 

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值