如何编译和开发自己的 AT 工程————ESP32

一、ESP-IDF 工具安装器

安装 ESP-IDF 必备工具最简易的方式是从 https://dl.espressif.com/dl/esp-idf/?idf=4.3 中下载 ESP-IDF 工具安装器。

在线安装与离线安装的区别
在线安装程序非常小,可以安装 ESP-IDF 的所有版本。在安装过程中,安装程序只下载必要的依赖文件,包括 Git For Windows 安装器。在线安装程序会将下载的文件存储在缓存目录 %userprofile%/espressif 中。
离线安装程序不需要任何网络连接。安装程序中包含了所有需要的依赖文件,包括 Git For Windows 安装器。
选择第三个
安装完成后的文件
————————————————————————————————————————

二、设置工具

完成ESP-IDF的安装以后,在之后的步骤我们需要在Windows的命令操作符进行操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
具体步骤

install.bat esp32   

在这里插入图片描述
在这里插入图片描述
(这里我之前已经安装过了)

export.bat

在这里插入图片描述
至此,你已经可以可以开始准备开发 ESP32 应用程序了。
________________________________________________________________________

三、我的尝试ESP-AT

首先,第一步就是获取ESP-AT
打开终端,切换到您要保存 ESP-AT 的工作目录(我是放在了C:\Espressif\frameworks\esp-idf-v4.4.1),使用 git clone 命令克隆远程仓库,获取 ESP-AT 的本地副本。以下是不同操作系统的获取方式。(在这里仅展示Windows下的操作流程)

git clone --recursive https://github.com/espressif/esp-at.git
//如 果 您 位 于 中 国 或 访 问 GitHub 有 困 难, 也 可 以 使 用 
git clone https://gitee.com/EspressifSystems/esp-at.git
//来获取 ESP-AT,可能会更快

然后,安装环境
运行项目工具 install 来安装环境。此安装工具将自动安装依赖的 Python 包、ESP-IDF 仓库以及ESP-IDF 依赖的编译器、工具等。

python build.py install

在这里插入图片描述
在这里报了一个ERROR,大概就是有一部分文件克隆失败了。在尝试解决了一通以后,毫无结果,所以决定先试一下下面的步骤。目前,还没发现有什么影响。
当然在第一次安装环境时,需要为 ESP32 设备选择以下配置选项:
• 选择 Platform name
• 选择 Module name
在这里插入图片描述

• 启用或禁用 silence mode,启用时将删除一些日志并减少固件的大小。一般情况下请禁用。
• 如果 build/module_info.json 文件存在,上述三个配置选项将不会出现。因此,如果您想重
新配置模组信息,请删除该文件。
最后,连接好你的设备,配置工程

python build.py menuconfig

如果前面没有问题,则会弹出下面的菜单:在这里插入图片描述
在这里插入图片描述
————————————————————————————————————————

四、编译烧录

运行以下命令编译工程

python build.py build

在这里插入图片描述
在这里插入图片描述
显示已经编译完成,并且告诉你每个bin文件烧录的位置。下一步我们就可以进行烧录了~
运行以下命令将生成的固件烧录到 ESP32 设备上

python build.py -p (PORT) -b(波特率) flash

ESP32-SOLO-1的为115200,这些都可以在文件中查找到!cmd提示中虽然没有说明要设置波特率,但是我之前应该是尝试过,没有加波特率,但是失败了。尝试了n次,属实有点记不清了~
注意请用 ESP32 设备的串口名称替换 (PORT)。或者按照提示信息将固件烧录到 flash 中。仍然需要注意替换 (PORT)。
如果 ESP-AT bin 不能启动,并且打印出“ota data partition invalid” ,请运行 python build.py
erase_flash 来擦除整个 flash,然后重新烧录 AT 固件。

在这里插入图片描述
在这里插入图片描述
至此,就完成了烧录。
————————————————————————————————————————

五、添加自定义AT命令

在完成上述操作以后,我还是很懵逼的,甚至不知道该把代码写到哪里,于是我开始对esp-at的文件一一区查看。大概弄懂了每个文件是干嘛的,当然一知半解。
在这里插入图片描述
最后也不是很清楚,就想着反正试错也没什么成本,而且前面的流程都已经操作了不知道多少遍了,抱着大不了从头再来的想法,就直接在main文件中的app_main.c文件开始下手了。当然我大概知道这是不规范的,规范写法等着后面再介绍吧。
最开始呢,我没有选择直接编译ESP32用户指南里的代码,而是选择了乐鑫官方博客上相对简单的例子入手,上连接
ESP-AT 系列: 自定义 AT 命令
在这里插入图片描述
在这里插入图片描述
然后编译烧录
在这里插入图片描述

六、感想

首先,学会了在命令操作符的提示下获得更多信息,最开始看的时候很懵,这么长怎么看,但是经过一次次的折磨和尝试慢慢觉得这是一个非常直接非常快捷的发现问题、解决问题的途径。
其次,就是敢于尝试。自己试错的代价确实很大,需要花费大量时间,但是也正是这个过程,积累下了寻找解决问题的途径,方法。
最后,还没到最后,继续加油~~

### ESP32 CAN Bus Configuration and Usage For configuring the Controller Area Network (CAN) on an ESP32, it is essential to understand that this microcontroller supports both CAN controller and transceiver functionalities through its GPIO pins. The setup involves initializing the CAN driver with specific parameters such as baud rate, mode of operation, and pin assignments. To initialize the CAN interface using Arduino IDE or PlatformIO within a project: ```cpp #include "driver/can.h" void setup() { can_config_t config; memset(&config, 0, sizeof(can_config_t)); // Set up bit timing configuration according to your needs. config.tx_pin = GPIO_NUM_21; // TXD Pin assignment config.rx_pin = GPIO_NUM_22; // RXD Pin assignment config.speed = CAN_SPEED_500KBIT; // Baudrate setting // Initialize the CAN module if (can_driver_install(&config, CAN_MODE_NORMAL)) { Serial.println("Failed to install CAN driver"); while(true); } // Start the CAN bus communication if (can_start()) { Serial.println("Started CAN successfully."); } else { Serial.println("Failed to start CAN."); } } ``` The above code snippet initializes the CAN peripheral in normal mode at 500 kbps speed[^1]. After installation and starting the CAN driver, messages can be transmitted over the network by calling `can_transmit()` function along with appropriate message structures containing identifiers and data bytes. When working with different hardware configurations like custom boards based on ESP32 chips, ensure proper settings are applied via menuconfig utility before compiling firmware images for these devices[^3]. --related questions-- 1. How does one configure advanced features of the CAN protocol stack available on ESP32? 2. What considerations should be taken into account when selecting between different speeds supported by the CAN interface on ESP32? 3. Can you provide examples demonstrating how to send and receive frames using the CAN API provided by Espressif SDK? 4. In what scenarios would someone prefer utilizing external CAN transceivers alongside internal controllers present inside ESP32 modules?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值