37集【重要】编译ESP-RTC工程并运行在01-RTC开发板中

37集【重要】编译ESP-RTC工程并运行在01-RTC开发板中

开发板样子这样的:
在这里插入图片描述
还有配套的外壳:
在这里插入图片描述

开发板介绍有需要的可以联系三哥,三哥介绍这位大拿给你:

我们把d:\Espressif\esp-adf\examples\protocols\esp-rtc 目录copy到工程目录中:D:\workspace\esp-idf\esp-rtc
之后用vscode打开目录,依次配置
有啥技术问题可以联系三哥v:robot3g,或Q群:174742054(开发者联盟),进群讨论。

在这里插入图片描述
menuconfig的时候需要配置如下:
在这里插入图片描述
配置完之后别忘了点save。
这个开发板,相较于官网的板子,需要修改如下:

1、加入LCD的片选 49
在这里插入图片描述
在这里插入图片描述
2、修改PA管脚
在这里插入图片描述

1 PA针脚修改为 TCA9554 0针脚

  esp_tca9554_config_t pca_cfg = {
    .i2c_scl = GPIO_NUM_18,
    .i2c_sda = GPIO_NUM_17,
    .interrupt_output = -1,
  };
  // 这里是修改ESP32 RTC 3.0 板子
  tca9554_init(&pca_cfg);
  tca9554_set_io_config(BIT(0), TCA9554_IO_OUTPUT);
  tca9554_set_output_state(BIT(0), TCA9554_IO_HIGH);

2 屏幕修改 屏幕是 ST7789 触摸是 GT911
#define LCD_CS_GPIO        GPIO_NUM_46

  esp_lcd_panel_io_spi_config_t io_config = {
    .dc_gpio_num = LCD_DC_GPIO,
    .cs_gpio_num = LCD_CS_GPIO,
    .pclk_hz = 60 * 1000 * 1000,
    .lcd_cmd_bits = 8,
    .lcd_param_bits = 8,
    .spi_mode = 0,
    .trans_queue_depth = 10,
    .on_color_trans_done = cb,
    .user_ctx = NULL,
  };

之后需要打上freertos的patch。
需要在vscode里面的terminal上输入,不能用git bash。
cd D:\Espressif\v5.1\esp-idf
之后git apply d:\Espressif\esp-adf\idf_patches\idf_v5.1_freertos.patch
在这里插入图片描述

之后编译。
在这里插入图片描述
编译成功。准备下载了:
在这里插入图片描述
先选择UART,之后点击flash进行下载。
在这里插入图片描述
下载成功。

<think>好的,用户在使用星火一号开发板执行mkfs -t elm sd0命令时遇到了“Cannot find a RTC device!”的错误。首先,我需要分析这个问题出现的原因。 根据引用[3],ESP32-C3的相关文档提到RTC实时时钟对于系统时间管理的重要性。mkfs命令可能需要依赖系统时间来创建文件系统的时间戳,因此缺少RTC设备可能导致命令失败。用户可能在开发板上没有正确配置RTC模块,或者内核驱动未加载。 接下来,解决方案可能包括检查硬件连接,确认RTC模块是否正确安装;检查设备树配置,确保RTC设备被正确识别;或者在内核配置中启用RTC驱动。此外,临时解决方法可能涉及手动设置系统时间,绕过RTC依赖,如使用date命令设置时间后再执行mkfs命令。 需要验证这些步骤是否适用于星火一号开发板的具体硬件配置,考虑是否有其他依赖项或配置问题导致该错误。</think>### 问题分析 在执行`mkfs -t elm sd0`命令时出现`Cannot find a RTC device!`错误,通常是因为文件系统格式化操作需要依赖系统时间戳,而系统未检测到实时时钟(RTC)设备。以下是分步解决方案: --- ### 解决方案 #### 1. **检查RTC硬件支持** - 确认开发板是否内置RTC模块(如PCF8563、DS1307等)。若未成,需外接RTC模块通过I2C或SPI接口连接[^2]。 - 检查硬件电路:确保RTC芯片供电正常,时钟信号线(如SCL/SDA)连接正确。 #### 2. **验证内核驱动支持** - 查看当前内核是否启用了RTC驱动: ```bash zcat /proc/config.gz | grep CONFIG_RTC_DRV_ ``` 若未启用,需重新配置内核编译,添加对应RTC驱动(如`CONFIG_RTC_DRV_PCF8563=y`)。 #### 3. **检查设备树配置** - RTC设备需在设备树(Device Tree)中正确声明。例如: ```dts &i2c0 { pcf8563: rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; }; ``` - 更新设备树后,重新编译烧录到开发板。 #### 4. **临时绕过时间依赖** - 若无需精确时间戳,可手动设置系统时间: ```bash date -s "2023-10-01 12:00:00" # 设置当前时间 mkfs -t elm sd0 # 执行格式化 ``` - 此方法仅临时生效,重启后时间会重置。 #### 5. **使用软件模拟RTC** - 在无硬件RTC时,可通过`fake-hwclock`工具模拟: ```bash opkg update opkg install fake-hwclock fake-hwclock load # 加载保存的时间 mkfs -t elm sd0 # 执行格式化 fake-hwclock save # 保存当前时间 ``` --- ### 操作验证 执行以下命令确认RTC设备是否被识别: ```bash dmesg | grep rtc # 查看内核日志中的RTC初始化信息 hwclock -r # 尝试读取硬件时钟 ``` 若输出包含RTC设备信息(如`rtc-pcf8563 1-0051: registered as rtc0`),则表明驱动已加载[^3]。 --- ### 附加说明 - **文件系统格式化依赖**:`mkfs`需要记录文件系统创建时间,因此需要有效的系统时间源(RTC或NTP)。 - **低功耗场景**:若开发板用于低功耗应用,需确保RTC模块的备用电池正常供电[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柔贝特三哥

你的鼓励是我坚持创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值