问题标签 [esp32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arduino - 中断例程不能处理向数组添加变量吗?
我有 2 个输入引脚作为中断连接在一起,1 个用于高沿触发,1 个用于 VPW 信号的低沿触发。两个中断程序是相同的,一个在高电平启动一个定时器,另一个在低电平启动一个定时器。这是高中断程序:
这有效,因为另一个CountL()
中断启动了计时器,但是如果我添加
到例行公事。而且我必须在中断结束后以常规循环添加到数组中。如何将这一行添加到中断中?
arduino - 如何在 ESP32 中禁用“中断看门狗”或增加 ISR 时间限制?
我正在使用ESP32 DEVKIT 链接和Adafruit VS1053 Codec + MicroSD Breakout - MP3/WAV/MIDI/OGG Play + Record - v4 链接来录制然后播放声音。我正在使用 Arduino IDE 进行编码。
我现在面临一个问题,模块使用硬件中断进行播放。但是当我尝试播放音轨时,ESP32 会一次又一次地重置。调试日志说:
该行Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1)
表示其中断 wdt。
我搜索了禁用中断 WDT 的方法,但没有帮助。中的文件esp_int_wdt.h
提供 ~Documents\Arduino\hardware\espressif\esp32\tools\sdk\include\esp32
了两个函数来启用两个或一个 CPU 的中断 WDT。没有禁用它的功能。
如何禁用 ESP32 中断 WDT?
c++ - Dragino LG01-S 收到异常数据包并停止工作
我遇到了 Dragino LG01-S 和 Heltec WiFi LoRa 32 之间的连接问题。
WiFi LoRa 32 每 5 秒向 LG01-S 发送带有温度数据的数据包。LG01-S 不断收到数据包,但一段时间后(可能是 20 分钟,可能是 7 小时),它会收到一个与其他数据包不同的数据包。我在串行监视器中跟踪数据包,直到出现一个失败的数据包,这就是我看到它们的样子。
“失败”的数据包如下所示:
¹h260äàŽÛNR·à,ªê@��ö9AÚ�o...Œ?£ÚK;ËÍ×.Ü*!®d§" ¿'ZoL
通常它是这样的:
30.00
通常数据包的大小是 5 个字节,而失败数据包的大小是 73 个字节。
失败出现在接收器(LG01-S)中,因为在失败的数据包出现后,它只是停止接收任何数据并且根本不执行任何代码。失败后 LoRa32 继续发送数据包。
我检查了失败是否一致,但它们不是,如前所述,它们发生在不同的时间。
您可以在下面看到发送方和接收方的代码。
发件人
接收者:
感谢您的帮助。
c - 使用 ESP32 写入 I2C EEPROM 页面的问题
我无法使用 ESP32 将多个字节写入 24LC256 EEPROM。
以下函数负责读取和写入 EEPROM。(我知道使用此 EEPROM 的页面写入仅限于 64 字节的增量,此代码仅用于测试)
EEPROM写功能
EEPROM读取功能
奇怪的是,我能够将 13 个字节写入 EEPROM,一切似乎都很好。
但是,当向 EEPROM 写入超过 13 个字节时,顺序读取功能就会出错。
我确信我所做的一切都遵循 24LC256 数据表中的读写规则。有什么我想念的吗?
arduino - 有没有办法通过适用于 esp32 的互联网更新固件?
我们可以使用 OTA 更新无线更新固件。但是要更新固件,esp32 设备需要在本地网络上。是否有任何方法或来源来更新不在本地网络上的设备的固件?
request - ESP32 WIFI webclient 返回 400 Bad Request
一直试图让这个网络请求工作一段时间,但没有成功。
浏览器上的相同请求效果很好(在 ESP32 生成它时从串行终端复制):caxiasmed.com/esp32/insert.php?jd=1234567&area=Area01&type=h&value=125 欢迎帮助。代码如下。谢谢保罗
当我使用串行控制台运行草图时,我得到了 WiFi 连接的确认。在串行控制台中,当执行以下脚本部分时,我还确认与“主机”的 http 连接成功发生:
出现问题,Web 服务器返回一个 html 格式的错误消息,当执行以下行时,该错误消息将打印在串行控制台上:
此响应包含消息 400 BAD REQUEST,就好像上面的 GET 格式不正确一样。
作为参考,我包括了之前发布的 ESP32 代码实际调用的 insert.php:
正如我所说,如果我从监视正在运行的应用程序的串行终端屏幕复制 GET 请求行并将其粘贴到 Web 浏览器上,它将按照上面的 php 代码成功地将数据插入 SQL 数据库中。
欢迎协助。谢谢保罗博尔赫斯
mqtt - 通过 umqtt 将 ESP32 连接到 AWS IoT
我有以下微型 python 代码:
但是当我从 ESP32 上的 repl 运行脚本时,我得到:
文件“umqtt/simple.py”,第 61 行,连接类型错误:给出额外的关键字参数
请提供任何帮助
python - NameError 在 MicroPython 中使用 time.sleep
抱歉导入整个脚本。由于它很短,我认为能够看到所有这些可能很有价值。我在脚本顶部导入时间,据我所知,所有变量在使用之前都会被引用。
我想将此脚本作为 dht_publish 导入,然后运行 dht_publish.run()。但是,这会产生以下错误。这是在 ESP32 开发板上的最新 MicroPython 二进制文件上运行的。
如果我注释掉 time.sleep(1) 行,则错误会在之前的行上标记,这表明错误可能在代码中的其他地方,但我看不到在哪里。对此的任何帮助将不胜感激。
freertos - 从另一个任务产生新任务
我正在试验 esp32 和 freertos。我想t2
从另一个任务创建一个新任务t1
。在t2
,我正在for
循环打印语句,但for
循环在第一次打印后停止打印,ESP32 模块仅在第一次打印后卡住。以下是我正在使用的代码:
上述问题的原因可能是什么?