分类 IOT 下的文章

最近在公司业务需要用到一个硬件模块,上面有这样1个功能需要一直在循环执行,但是这个功能不能阻塞掉其他功能的执行。
想到这里,有人肯定会说,用多线程啊,但是它没有啊。

于是我做了一番调查,mpy有个自带的uasyncio模块可以解决这个问题,上帝给你关上一扇门的时候就给你开了个窗。

开干(上代码示例):

import uasyncio as asyncio


async def loop_task(arg):
    while True:
        print('{0} 状态1'.format(arg))
        await asyncio.sleep(1)
        print('{0} 状态2'.format(arg))
        await asyncio.sleep(1)


async def other_task():
    print('我是其他非阻塞任务')
    await asyncio.sleep(1)


def main():
    loop = asyncio.get_event_loop()
    loop.create_task(loop_task('死循环'))
    loop.create_task(other_task())

    loop.run_forever()


if __name__ == '__main__':
    main()

OK, all done, enjo!!!

中午吃完饭,迫不及待,上手ESP8266开发板,加上自己喜欢的python。于是,开始搞起。

0x00.Ready...

  1. python2.7 on pc or mac.
  2. usb线
  3. ESP8266开发板

0x01.上MicroPython官网下载bin文件,地址:http://micropython.org/download/#esp8266
04.png

0x02.安装固件烧写工具:pip install esptool
00.png
01.png

0x03.USB连上开发板,上电
06.jpg

0x04.烧写固件:

  1. 擦除flash:

    esptool.py --port {"serial port"} erase_flash

02.png

  1. 烧写固件:
    esptool.py --port {"serial port"} --baud 460800 write_flash --flash_size=8m 0 {" firmware bin file..."}

03.png

0x05.Putty连接设备.enjoy!
05.png

ps:搞机指南:http://docs.micropython.org/en/latest/pyboard/

导语:

之前学单片机的时候手上有块stm32f103c8t6的核心小板子,恰好这几天看了microPython,心中汹涌澎湃,就想着能移植到小板子上去。

准备:

STM32F103C8T6核心板、J-link调试器、USB电源线

开战:

参考:http://bbs.elecfans.com/jishu_581420_1_1.html
首先安装编译器GNU Tools for ARM Embedded Processors(arm-gcc-none-eabi),下载地址:[https://launchpad.net/gcc-arm-embedded][1]。
下载ST的DfuSe工具:下载地址:[http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF257916][2]
从github下载MicroPython源码,地址:[https://github.com/micropython/micropython][3]
进入源码的stmhal\boards\ 目录,新建一个目录stm32f103c8t6,复制STM32F4DISC目录下的文件到刚刚新建的目录