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