<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>嵌入式 :: 标签 :: yafeng 的博客</title><link>http://yafengabc.github.io/tags/%E5%B5%8C%E5%85%A5%E5%BC%8F/index.html</link><description/><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 19 Sep 2026 14:13:35 +0800</lastBuildDate><atom:link href="http://yafengabc.github.io/tags/%E5%B5%8C%E5%85%A5%E5%BC%8F/index.xml" rel="self" type="application/rss+xml"/><item><title>MicroPython入坑记（一）（ESP8266 ESP32）</title><link>http://yafengabc.github.io/cnblogs/p8680938/index.html</link><pubDate>Sat, 31 Mar 2018 08:55:00 +0800</pubDate><guid>http://yafengabc.github.io/cnblogs/p8680938/index.html</guid><description>手上有块基于ESP8266的NodeMCU板子，没错，就是那个10块钱的带WIFI的芯片，当时感觉又便宜又又有wifi，并且可以用脚本lua写代码，果断买买买，然后玩了一下WIFI跟树莓派通讯（树莓派开Http Server，然后用lua通过socket模拟http指令定期获取树莓派的指令）。控制了个继电器加灯泡玩了玩，手头上的dht11也能直接读出来（nodemcu内置驱动了），然后就没有然后了，感觉lua不是我的菜，用惯了python，写lua还是十分别扭的.嗯对lua的吐槽开始：&#10;1.没有高层次的封装，缺少轮子，虽然有cjson，socket等可用，然而没有httpclient之类更高层次的封装，搞个rest 请求还得自己写http头，虽然也不麻烦，然而用惯了urllib的python用户自然不是很爽。lua本身是作为C的嵌语言设计的，所以基本库太有限，虽然网上配合lua的C库众多，然而想搞进nodemcu的固件里，我这半吊子水平还是有难度的，一句话就是nodemcu提供的功能，可以很好的搞，没提供的功能干瞪眼。&#10;2.一些语法上的吐槽，比如默认全局变量，局部变量要加local之类的，年代久远，记不清了总之用惯了python习惯了优雅的设计，就不习惯丑陋了（引战了引战了）&#10;3.固件开发不活跃，现在github上的代码基本都是几年前的了，虽然最新的2.1.0发布于2017年8月，看看changelog，其实就是一个18B20驱动的重写，没有什么大改进。这也是国人类似项目的一贯作风：为了卖板子然后找个大神移植下固件，然后能把东西卖出去就OK了，至于固件的演进，看大神的的心情了……&#10;4.nodemcu只能用在esp8266上，当然esp32也可以跑了，然而也就这样了，参照上边那条，开发不活跃啊，不像micropython或者espruino（一个跑在单片机的javascript固件），官方就支持好多的MCU&#10;所以后来有了Arduino for ESP8266，就用Arduino IDE耍去了，那个支持的MCU多(lll￢ω￢)，以前其实也知道有MicroPython，但大神说因为8266资源有限，被裁减的太厉害（其实当然完全不是那么回事）啥也干不了，不如等ESP32（然后我就真等ESP32了）。&#10;经过漫长的等待，ESP32的板子终于价格降到心理价位，然后果断入坑，当然是刷MicroPython了，然后为了对比，顺便把手上的8266也刷上了MicroPython固件，搞起来，先看可用内存：&#10;ESP8266：&#10;micropython.mem_info()&#10;stack: 2112 out of 8192&#10;GC: total: 35968, used: 9376, free: 26592&#10;No. of 1-blocks: 50, 2-blocks: 10, max blk sz: 264, max free sz: 1261&#10;嗯，8K的的栈，36K的堆确实小了些，然而……esp32也好不到哪儿去&#10;micropython.mem_info()&#10;stack: 736 out of 15360&#10;GC: total: 111168, used: 6864, free: 104304&#10;No. of 1-blocks: 26, 2-blocks: 8, max blk sz: 264, max free sz: 6402&#10;纳尼？说好的400+Kb的内存呢，怎么只有110K左右？（虽然比8266是好多了）&#10;经过探索gayhub上的代码，终于明白了原因：</description></item></channel></rss>