问题标签 [micropython]
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.
http-post - MicroPython urequests.post 失败
我正在尝试在我的(Android)移动设备上接收来自运行 MicroPython 的 ESP8266 MCU 的通知。出于这个原因,我订阅了一些在线服务,这些服务公开了一些用于此任务的 API,Pushbullet 和 Pushed,并在我的设备上安装了匹配的应用程序。
这就是我正在尝试的:
推弹:
错误:
推:
错误:
搜索这些错误,并没有让我有任何用处。
完全相同的代码片段在我的 Linux 机器上工作正常(使用requests
代替urequests
),但我知道这urequests
可能有一些限制。
您对如何解决此问题有任何提示吗?
c - 如何在不重构的情况下跳出并在 c 代码中的任意位置恢复
背景
我正在将micropython集成到我的自定义协作多任务操作系统中(不,我的公司不会更改为抢占式)
Micropython 使用垃圾收集,这比我分配的时间片花费更多的时间,即使没有什么可收集的,即我连续两次调用它,计时它仍然需要很多时间。
明显的解决方案
是的,我可以重构 micropython 源代码,但只要有变化。. .
理想的解决方案
理想的解决方案是调用一些void pause(&func_in_call_stack)
会跳出的函数,使堆栈保持完整,一直到调用堆栈顶部的函数,比如main
. 并且resume
会。. . 恢复。
问题
是否有可能使用 C 和汇编来实现pause
?
更新
在我写这篇文章时,我意识到基于 C 的异常处理代码nlr_push()/nlr_pop()
已经完成了我需要的大部分工作。
python-3.x - Micropython 中是否有针对 WPA2 握手中的 KRACK 错误的安全补丁?
我假设在没有补丁的情况下连接 ESP8226 芯片会使整个网络易受攻击?极不可能有人会通过这种方式经历混乱,是的,但无论如何最好知道。谢谢!
python - Micropython 1.9.3 - 如何将 .py @micropython.native 代码编译成 .mpy?
我在Micropython 1.9.3上。我知道如何使用mpy-cross
将 a.py
变成.mpy
可以由 Micropython 虚拟机执行的编译 python。
问题是,如果我尝试使用@micropython.native
ie 将 Python 脚本编译为本机代码而不是字节码进行编译,则会出现错误:
ValueError:只能保存字节码
在以下.py
问题
不能以.mpy
格式嵌入本机代码吗?我错过了一些选择mpy-cross/mpconfigport.h
吗?
我唯一改变的是:
#define MICROPY_EMIT_THUMB (0) // changed it to 1
python - (Monkey) 用于微型 python 单元测试的补丁
我找不到任何示例,我将尝试具体说明问题:
鉴于 micropython 具有某种形式的单元测试库,我该如何做猴子补丁或类似的东西来替换测试用例中的系统对象输出或输入。
希望编写的测试用例在不更改实际实现代码的情况下无法模拟,仅用于测试,即使用补丁替换为模拟的网络或文件系统对象 - 或类似的手动方式覆盖系统对象以进行测试。
debouncing - Micropython:如何去抖动 Pyboard USR 开关?
我目前在Pyboard v1.1上运行这个MicroPython代码:
但是,这种设置容易受到接触反弹的影响。
我尝试加起来pyb.delay(500)
无济于事。
有没有一种优雅的方法来修复USR
Pyboard 上的开关弹跳?
python - 数一个字符数次
我想要做的是,一旦一个字符在 Python 中的字符串中出现多次,程序就会中断。
这是我得到的输出:
b'30,22,37,293,29,26,55,30D\r\n$GPGSV,3,1,11,01,04,250,,03,21,309,24,08,15,200,,10,20,157,*7B \r\n$GPGSV,3,2,11,14,49,062,37,16' b'8,W,001328.00,A,A*70\r\n9,26,55,359,30*75\r\n $GPGSV,3,3,11,27,40,170,38,31,20,022,14,32,42,094,35*4C\r\n$GPGLL,0226.72251,N,0' b'A*2E\r\n $GPGGA,001329.00,A,A*70\r\n$GPRMC,001329.00,A,0226.72248,N,07635.92031,W,0.008,,011217,,,A*64\r\n$GPVTG,,T,, M,0.008,N,'b'2.25,1.08,1.98*0D\r\n$GPG1329.00,0226.72248,N,07635.92031,W,1,08,1.08,1769.1,M,9.8,M,,*4C \r\n$GPGSA,A,3,16,32,26,31,14,22,27'
所以我想在第五个“b”出现后停下来。
micropython - 如何通过 I2C 使用 Micropython 访问 HTIT-WB32 上的 OLED?
我在HTIT-wb32 ESP32板上安装了 Micropython v1.9.2。我可以运行代码、连接到我的路由器等。我无法通过 I2C 访问内置的 OLED 显示器。
电路板的 OLED 引脚布局表明 SDA 在引脚 4 上,SCL 在引脚 15 上。
所以用代码:
我应该得到一个地址,i2c.scan()
但它正在返回:
我读过的其他代码示例看起来非常简单并且可以正常工作,但我还没有找到该设备的代码。
我究竟做错了什么?
mqtt - 如何检查 Micropython umqtt 客户端是否已连接?
我想在失败时将 MQTT 客户端重新连接到服务器。
我正在使用uqmtt.robust
重新连接:它适用于一些故障,但不处理互联网断开连接。我正在考虑这样做:
我试图通过阅读 PINGRESP 来解决,但 ping 是间隔的,所以我找不到连接是否有效。
python-3.x - 退出类方法后追加到self没有效果
我正在尝试定义一个类方法,它将随机数字列表分配给给定(预先存在的)对象,以便它在 ESP8266 中的 MicroPython 下运行。我面临的问题是这个对象的值在几秒后为空append()
。我使用的代码如下:
但是在运行这个方法之后
self
似乎根本没有改变,即使它在每次迭代中都在增长。为什么会self
在循环内递增,但在退出方法后不会递增?