MicroPython 开发ESP32应用教程 之 WIFI、BLE共用常见问题处理及中断处理函数注意事项

最近在用micropython 开发ESP32s3的应用项目时,总是碰到各种各样的问题,这些问题,在之前的课程中,为了聚焦每个课程的知识内容,我们没有提及,今天我们把之前遇到的一些问题及解决思路跟大家分享一下,希望能帮到碰到类似问题的朋友。

一、MicroPython for ESP32 不同固件之间的差异

要理解这点,我们首先要明白micropython与python的区别:

Python
1、运行于通用操作系统(如 Windows/Linux/macOS),依赖高性能硬件(多核 CPU、GB 级内存),适合桌面、服务器等场景‌ 。
2、作为通用语言,无法直接操作 GPIO、PWM 等硬件外设‌。
3、拥有完整的标准库(如 ossys)和丰富的第三方库(如 NumPy、TensorFlow),覆盖复杂计算场景‌

MicroPython
1、专为微控制器(如 ESP32、STM32)设计,支持资源受限设备(KB 级内存、MHz 级处理器),适用于嵌入式系统和物联网开发‌
2、提供 machine 等模块直接控制硬件(如引脚、传感器),支持实时外设交互(SPI/I2C/UART)‌
3、仅移植 Python 3.4 的部分标准库,功能简化(如不支持多线程),第三方库需针对嵌入式场景定制‌

个人以为,以上是两者主要区别,需要知道两者更多区别的朋友请自行搜索整理。

从以上区别,我们比较容易理解,不同微处理器的MicroPython‌固件,可能支持的功能模块会有所不同,甚至相同微处理器,固件版本不同,也会有差异。

我们现在正在开发的项目,本来开始的时候是打算使用ESP32C3开发的,但随着客户的需求逐渐明确,发现ESP32C3的IO口资源不够用,只能换成ESP32S3,从C3换成s3,开发语言使用的是micropython,按说是非常简单的一件事,但还是遇到问题了,获取天气信息的程序在c3上开发完成后,移植到S3上,说是缺少urequests模块,在开发环境中shell窗口输入help('modules')后,我们发现,s3的固件还真没有urequests模块。知道了原因,处理起来就比较简单,一换支持urequests模块的固件,二自己添加urequests模块。

二、BLE与WIFI共用的问题

这个问题,严格来说其实是第一个问题的具体表现,考虑到ESP32对BLE、WIFI共用的需求比较高,我们单独拿出来讲一讲。

我们开始用BLE来控制WS2812灯珠,功能实现没有问题,但加入WIFI后,总是报“WIFI internal error"之类的错误,在网上搜索原因:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

永远的元子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值