MicroPython是什么

微信图片_20200508183121.jpg (26.41 KB, 下载次数: 0)

2020-5-8 18:39 上传

程序猿中有句俗语:

人生苦短,我用Python。

Python的强大和易用性让它不仅可以写网站,编程序,在嵌入式领域也有一席之地。MicroPython,是Python3编程语言的一个完整软件实现,包括Python标准库的一小部分,用C语言编写,经过优化可在微控制器和受限环境中运行。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。MicroPython官方网站:MicroPython - Python for microcontrollers

MicroPython中文社区:micropython - 中文社区MicroPython支持的开发板

从官方网站我们可以了解到,官方开发板主要有以下几种:PYB Nano V1.1基于STM32F401

PYB Nano V2基于STM32F411

PyBoard CN V2基于STM32F405

MicroPython ESP32

另外还支持其他系列的开发板:WiPy

ESP8266 boards

ESP32 boards

STM32F4 Discovery board

NUCLEO-F401RE board

NUCLEO-F411RE board

NUCLEO-F767ZI board

NUCLEO-L476RG board

Espruino Pico

MicroPython移植和板子关系不大,主要支持的是芯片,如果自己的板子芯片是上面的这些型号,也可以刷MicroPython固件,对应的IO口需要更改,而且需要重新编译生成对应的固件。具体操作方法可以查看:官方Github地址:http://github.com/micropython/micropython,里面包括了源代码和Linux下的编译方法。开发板固件下载:MicroPython downloadsNucleo-F411RE移植MicroPython固件

微信图片_20200508183126.jpg (110.28 KB, 下载次数: 1)

2020-5-8 18:39 上传

正好MicroPython支持本次申请的Nucleo-F411RE开发板,就试着把刷成MicroPython的固件,尝试一下使用Python来开发STM32,具体移植过程。1.准备工作支持Nucleo-F411RE的MicroPython固件:NUCLEO_F411RE-20190604-v1.11-25-gce8262a16.dfu

用于STM32 DFU下载的软件:STSWSTM32080V3.0.6.zip

PUTTY串口终端:putty-64bit-0.71-installer.msi2.安装Dfu下载软件

下载完成后,安装DFU下载软件DfuSeDemo,非常简单,一路Next就行,在选择安装目录时,可以选择非系统盘。3.硬件连接

由于Nucleo-F411RE板子的USB口是连接到ST-Link调试器,并没有一个连接到STM32 USB引脚的接口,所以我使用的是这种转接板,把USB的5个信号转接成5个排针,并和板子上的引脚连接:

微信图片_20200508183130.jpg (106.02 KB, 下载次数: 1)

2020-5-8 18:39 上传

微信图片_20200508183134.jpg (28.77 KB, 下载次数: 2)

2020-5-8 18:39 上传4.烧录MicroPython固件

和串口下载程序一样,使用DFU烧录固件前,也要先把STM32切换为系统存储器启动模式:即下载模式。上电之前要先设置BOOT0=1,BOOT1(PB2)=0,然后烧录MicroPython固件。设置完成之后,连接电脑,设备管理会出现一个DFU设备

微信图片_20200508183137.jpg (65.04 KB, 下载次数: 1)

2020-5-8 18:39 上传打开DfuSeDemo软件,选择已经下载的固件:NUCLEO_F411RE-20190604-v1.11-25-gce8262a16.dfu

微信图片_20200508183140.jpg (102.99 KB, 下载次数: 2)

2020-5-8 18:39 上传点击Upgrade升级,在弹出的界面,点击“是”。

微信图片_20200508183143.jpg (97.17 KB, 下载次数: 2)

2020-5-8 18:39 上传等待升级完成,断电,把BOOT短接线拔掉,重新上电。

微信图片_20200508183146.jpg (110.14 KB, 下载次数: 0)

2020-5-8 18:39 上传5.安装Putty

安装Putty,打开串口终端,选择ST-Link虚拟串口号,波特率115200

微信图片_20200508183149.jpg (76.05 KB, 下载次数: 1)

2020-5-8 18:39 上传

按一下板子上的黑色复位按键,串口输出:MicroPythonv1.11-12-g6077d1715 on2019-06-03;NUCLEO-F411REwithSTM32F411xE

Type"help()"formore information.

>>>help()

WelcometoMicroPython!

Foronline help please visit http://micropython.org/help/.

Quickoverview of commandsforthe board:

pyb.info()--printsome general information

pyb.delay(n)--waitforn milliseconds

pyb.millis()--getnumber of milliseconds since hard reset

pyb.Switch()--create aswitchobject

Switchmethods:(),callback(f)

pyb.LED(n)--create an LEDobjectforLED n(n=1,2,3,4)

LED methods:on(),off(),toggle(),intensity()

pyb.Pin(pin)--geta pin,eg pyb.Pin('X1')

pyb.Pin(pin,m,[p])--geta pinandconfigure itforIO mode m,pull mode p

Pinmethods:init(..),value([v]),high(),low()

pyb.ExtInt(pin,m,p,callback)--create an external interruptobject

pyb.ADC(pin)--make an analogobjectfroma pin

ADC methods:read(),read_timed(buf,freq)

pyb.DAC(port)--make a DACobject

DAC methods:triangle(freq),write(n),write_timed(buf,freq)

pyb.RTC()--make an RTCobject;methods:datetime([val])

pyb.rng()--geta30-bit hardware random number

pyb.Servo(n)--createServoobjectforservo n(n=1,2,3,4)

Servomethods:calibration(..),angle([x,[t]]),speed([x,[t]])

pyb.Accel()--create anAccelerometerobject

Accelerometermethods:x(),y(),z(),tilt(),filtered_xyz()

Pinsare numbered X1-X12,X17-X22,Y1-Y12,orbytheir MCU name

PinIO modes are:pyb.Pin.IN,pyb.Pin.OUT_PP,pyb.Pin.OUT_OD

Pinpull modes are:pyb.Pin.PULL_NONE,pyb.Pin.PULL_UP,pyb.Pin.PULL_DOWN

Additionalserial bus objects:pyb.I2C(n),pyb.SPI(n),pyb.UART(n)

Controlcommands:

CTRL-A--on a blank line,enter raw REPL mode

CTRL-B--on a blank line,enter normal REPL mode

CTRL-C--interrupt a running program

CTRL-D--on a blank line,doa soft reset of the board

CTRL-E--on a blank line,enter paste mode

Forfurther help on a specificobject,type help(obj)

Fora list of available modules,type help('modules')

>>>6.开始Python开发之旅——点亮一个LED

点亮板载的绿色LED,串口输入命令点亮和熄灭LED>>>pyb.LED(1).on()

>>>pyb.LED(1).off()

>>>pyb.LED(1).on()

>>>

更多Python控制外设的命令:Quick reference for the pyboard:

http://docs.micropython.org/en/latest/pyboard/quickref.html一些问题

官方介绍移植成功之后,会在电脑上显示一个PYBFLASH的盘符,但是我这次移植并没有出现,不知道是什么问题。参考资料Micropython学习(二)STM32移植:

http://blog.csdn.net/bobo184/article/details/84174990

python stm32-尝试一下使用Python来开发STM32相关推荐

  1. stm32 python界面开发_【STM32开发】使用Qt Creator 开发STM32

    在之前的文章中我们介绍了如何使用VSCode去构建一个STM32的单片机项目,今天我们来说一下使用 Qt Creator 来开发STM32单片机. 0x01: 开发环境准备 PlatformIO Co ...

  2. python 携程_python 携程爬虫开发笔记

    前言 最近购买了<Python3 爬虫.数据清洗与可视化实战>,刚好适逢暑假,就尝试从携程页面对广州的周边游产品进行爬虫数据捕捉. 因为才学Python不够一个星期,python的命名规范 ...

  3. python用什么软件编程-python开发用什么编辑器

    工欲善其事必先利其器,估计大部分的pythoner都是从python IDE开始了python之路.有很多的python IDE工具可以用,但是要从中选出一个用着趁手的IDE却是一项艰巨的任务. 你可 ...

  4. python和java哪个好-Python和Java发展前景哪个好?Python开发学习

    Python开发的工作前景好吗?Python该怎么学?Python和Java是许多人喜欢比较的两种主要编程语言.一个是潜力无限的后起之秀.另一个是行业经典,成熟稳定.对于那些想要入行互联网从事IT技术 ...

  5. atom配置python环境_用Python制作网站Django实操与开发环境配置

    上篇文章简单介绍了Django的基础知识,本篇将进入实际操作部分,包括Django的运行环境.开发环境配置与新建项目等内容.由于篇幅原因,笔者不得不把Demo演示放到下一篇文章,望读者(如果有的话)见 ...

  6. python 创意项目_针对python开发人员的10个很棒的python项目创意

    python 创意项目 The joy of coding Python should be in seeing short, concise, readable classes that expre ...

  7. 计算机科学与技术python方向是什么意思-第一模块·开发基础-第1章 Python基础语法...

    Python开发工具课前预习 01 Python全栈开发课程介绍1 02 Python全栈开发课程介绍2 03 Python全栈开发课程介绍3 04 编程语言介绍(一) 05 编程语言介绍(二)机器语 ...

  8. python与人工智能编程-最适合人工智能开发的5种编程语言,Python排第一

    原标题:最适合人工智能开发的5种编程语言,Python排第一 文章转载自超图集团,版权归原作者和刊载媒体所有. 近年来,人工智能(AI)正在不断释放科技革命和产业变革积蓄的巨大能量,深刻改变着人类生产 ...

  9. python与人工智能编程-最适合人工智能开发的5种编程语言,你知道几种?

    原标题:最适合人工智能开发的5种编程语言,你知道几种? 私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包. 人工智能技术的提升不仅为企业的运营带来了效率,而且为人民的生活带来了便利. 迄 ...

最新文章

  1. 1 字节的 utf-8 序列的字节 1 无效_字节码文件结构详解
  2. xp系统如何将计算机放到桌面快捷方式,如何整理xp系统电脑桌面快捷方式图标...
  3. python flask 设置 header 响应体、响应头、状态码
  4. TCP的TIME_WAIT状态
  5. 亚马逊的vps多少钱一个月_如何查看您在亚马逊上花了多少钱
  6. python判断是否为完全数_Python识别完美数
  7. base64 linux_渗透测试常用Linux命令总结
  8. 日志存储 elasticsearch vs clickhouse
  9. python搜索关键词自动提交_简单爬虫:调用百度接口,实现关键词搜索(python_003)...
  10. 【BZOJ1880】[Sdoi2009]Elaxia的路线(最短路)
  11. 如何在 Azure 虚拟机里配置条带化
  12. codejock toolkit pro 19.2 for MFC
  13. 贝叶斯网络模型基础——R语言
  14. 【centos】快速截图设置
  15. Windows文件换行符转Linux换行符
  16. 家庭网关——开启数字家庭的钥匙
  17. 思维导图工具之Mindmeister
  18. 【转载】儒林外史人物——周进(二)
  19. Centos7笔记之Postfix邮件服务器搭建
  20. (王道考研计算机网络)第五章传输层-第一节:传输层概述、功能和端口

热门文章

  1. 第二期 AOSP 环境搭建、下载和编译 《手机就是开发板》遇到问题解决
  2. Esper——内存计算、事件驱动、SQL支持
  3. MongoDB C++ gridfs worked example
  4. php python 函数互相翻译的网站
  5. 【luogu P2169 正则表达式】 题解
  6. 四则运算2.0版程序
  7. Django----缓存
  8. HDU 6108.小C的倍数问题 (2017百度之星程序设计大赛 - 初赛(A)1001)
  9. HDU 6035 Colorful Tree(补集思想+树形DP)
  10. 面向对象的5个基本设计原则