安信可ESP-12K模块采用的是乐鑫 ESP32-S2 芯片,"阉割版ESP32"虽然去掉了蓝牙,但依然比 ESP8266 性能比更高,有43个可编程 GPIO,其特性:
ESP8266 / ESP32 和 ESP32S2的差别一览表
由于ESP32S2 为 ESP32 的阉割版,去掉了蓝牙的单核版,所以此芯片是没有蓝牙协议栈的,但是与 ESP32 二次开发类似;
目前我们推荐使用的是 Linux 环境开发,下面推荐使用 window 自带的 Linux 子系统环境搭建,当然了,你也可以用虚拟机实现!
因此,根据下面文档,搭建最新的 ** ESP32** 即可支持 ESP32S2 啦!
Bash on Ubuntu on Windows 是通过 Windows Subsystem for Linux(WSL)这一 Windows 10 的最新特性实现的,使用此功能,你可以在 Windows 中原生运行 Linux 的大多数命令行程序。
启用 WSL 功能之后,如果使用 Bash,则 Windows 10 操作系统会下载一个由 Canonical 创建的 Ubuntu用户模式镜像Ubuntu user-mode image,然后 Bash 程序以及其他的 Linux 二进制程序就可以运行于该 Ubuntu 镜像上。此外,微软也承诺未来会提供更多 Linux 发行版以供选择。
Bash on Ubuntu on Windows 功能主要是面向于开发者,我们可以在 Windows 中使用一些 Linux 生态链的开发工具。
由于这个面向的是开发者,所以安装的window系统务必是专业版,你可以去某宝自行购买一个激活码。
通过Win10任务栏中的Cortana搜索框搜索打开“启用或关闭Windows功能”,向下滚动列表,即可看到“适用于Linux的Windows子系统”项。
勾选它,确定,然后按提示操作重启系统:
然后进入“设置 - 更新和安全 - 针对开发人员”设置页面,选中“开发人员模式”。如图:
微软后来把Ubuntu、openSUSE、SLES和Fedora分发上架到了Microsoft Store(微软商店),你可以很方便地下载安装这些Linux发行版。如图:
以下载安装Ubuntu分发为例,点击 Ubuntu 打开详情页面,然后点击获取。如图:
首次安装,会提示您输入账号和密码,务必记住!
之后,任意地方,shift + 鼠标右击 --> “在此处打开 linux shell” ,即可连接到了 Linux;
我们需要安装几个常用的软件 :
sudo apt-get install vim
sudo apt install git
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
git
命令来拉取下来,这就可以可以同步最新的框架版本!不能直接一个downLoad
下载,发现会有错误,切记!众所周知,乐鑫的开放源码都放在GitHub,而GitHub又被微软收购了,这一年的访问下载速度慢得乌龟一样,哈哈!所以,我克隆一份放在了国内的码云网站,这样就保证我们拉取代码非常快!
PS:这份同步乐鑫源仓库的工作,我们会一直保持下去!
首先,我们先拉取源码,先不拉取子模块!
git clone https://gitee.com/xuhongv/esp-idf.git
没有拉取子模块的是不完整的代码,看了下子模块源路径是不规范的,这里,我们再修改为码云上的:
.gitmodules
,全部替换为下面这个内容!git submodule update --init --recursive
[submodule "components/esptool_py/esptool"]
path = components/esptool_py/esptool
url = https://gitee.com/xuhongv/esptool.git
[submodule "components/bt/controller/lib"]
path = components/bt/controller/lib
url = https://gitee.com/xuhongv/esp32-bt-lib.git
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
url = https://gitee.com/xuhongv/micro-ecc.git
[submodule "components/coap/libcoap"]
path = components/coap/libcoap
url = https://gitee.com/xuhongv/libcoap.git
[submodule "components/nghttp/nghttp2"]
path = components/nghttp/nghttp2
url = https://gitee.com/xuhongv/nghttp2.git
[submodule "components/libsodium/libsodium"]
path = components/libsodium/libsodium
url = https://gitee.com/xuhongv/libsodium.git
[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = https://gitee.com/xuhongv/spiffs.git
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = https://gitee.com/xuhongv/cJSON.git
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = https://gitee.com/xuhongv/mbedtls.git
[submodule "components/asio/asio"]
path = components/asio/asio
url = https://gitee.com/xuhongv/asio.git
[submodule "components/expat/expat"]
path = components/expat/expat
url = https://gitee.com/xuhongv/libexpat.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = https://gitee.com/xuhongv/esp-lwip.git
[submodule "components/mqtt/esp-mqtt"]
path = components/mqtt/esp-mqtt
url = https://gitee.com/xuhongv/esp-mqtt.git
[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = https://gitee.com/xuhongv/protobuf-c.git
[submodule "components/unity/unity"]
path = components/unity/unity
url = https://gitee.com/xuhongv/Unity.git
[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
url = https://gitee.com/xuhongv/tinyxml2.git
[submodule "components/bt/host/nimble/nimble"]
path = components/bt/host/nimble/nimble
url = https://gitee.com/xuhongv/esp-nimble.git
[submodule "components/cbor/tinycbor"]
path = components/cbor/tinycbor
url = https://gitee.com/xuhongv/tinycbor.git
[submodule "components/esp_wifi/lib"]
path = components/esp_wifi/lib
url = https://gitee.com/xuhongv/esp32-wifi-lib.git
[submodule "components/tinyusb/tinyusb"]
path = components/tinyusb/tinyusb
url = https://gitee.com/xuhongv/tinyusb.git
[submodule "examples/peripherals/secure_element/atecc608_ecdsa/components/esp-cryptoauthlib"]
path = examples/peripherals/secure_element/atecc608_ecdsa/components/esp-cryptoauthlib
url = https://gitee.com/xuhongv/esp-cryptoauthlib.git
带子模块递归方式拉取GitHub,慢慢等吧!
git clone https://gitee.com/xuhongv/esp-idf.git
这里就简单很多,就设置变量即可!先拿到上述的SDK路径即为IDF路径!
以我的环境为例:
export IDF_PATH=/home/xuhongv/ESPRESSIF/ESP32/esp-idf
vim ~/.bashrc
source ~/.bashrc
echo $IDF_PATH
除了 ESP-IDF 本身,您还需要安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等!
cd/home/xuhongv/ESPRESSIF/ESP32/esp-idf
./install.sh
出现这个 , 表示 安装成功!
此时,您刚刚安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本完成。
注意下面命令2个小数点中间有一个空格!
. ./export.sh
成功后,便这样提示:
打开 IDF/esp-idf/examples/get-started
下面的hello_world
工程;
idf.py set-target esp32s2 menuconfig
: 配置编译芯片为esp32s2,并配置面板;idf.py build
: 编译代码;idf.py flash
: 烧录程序进去设备里面;idf.py erase_flash
: 擦除设备里面的程序;Q1:运行
install.sh
运行报错$'\r': command not found
?
UNIX
格式,再次运行即可!Q2:编译报错
No certificate found
?
esp-idf\components\mbedtls\esp_crt_bundle\cacrt_all.pem
文件按照第一条方法修改为UNIX
格式Q3:在下载或安装依赖时候,有时候会突然卡住?
Q4:如何挂载串口?
COMx
对应WSL的/dev/ttySx
,例如COM4
对应WSL的/dev/ttyS4
。但是只能在设备管理器中看到哪些串口可用,无法在Linux
查询可用串口;