前言

板子申请了也有一段时间了,也快到评测截止时间了,想着做点有意思的东西,正好前一段时间看到过可以在MCU上移植MicroPython的示例,就自己尝试一下,记录移植过程。

MicroPython是什么

程序猿中有句俗语:人生苦短,我用Python。Python的强大和易用性让它不仅可以写网站,编程序,在嵌入式领域也有一席之地。

MicroPython,是Python3编程语言的一个完整软件实现,包括Python标准库的一小部分,用C语言编写,经过优化可在微控制器和受限环境中运行。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,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地址:https://github.com/micropython/micropython,里面包括了源代码和Linux下的编译方法。开发板固件下载:MicroPython downloads

Nucleo-F411RE移植MicroPython固件

正好MicroPython支持本次申请的Nucleo-F411RE开发板,就试着把刷成MicroPython的固件,尝试一下使用Python来开发STM32,具体移植过程。

1.准备工作

2.安装Dfu下载软件

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

3.硬件连接

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

转接板

开发板

VBUS

3.3

D-

PA11

D+

PA12

IO

GND

GND

GND

4.烧录MicroPython固件

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

设置完成之后,连接电脑,设备管理会出现一个DFU设备

点击Upgrade升级,在弹出的界面,点击“是”。

等待升级完成,断电,把BOOT短接线拔掉,重新上电。

5.安装Putty

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

按一下板子上的黑色复位按键,串口输出:

MicroPython v1.11-12-g6077d1715 on 2019-06-03; NUCLEO-F411RE with STM32F411xE

Type "help()" for more information.

>>> help()

Welcome to MicroPython!

For online help please visit http://micropython.org/help/.

Quick overview of commands for the board:

pyb.info() -- print some general information

pyb.delay(n) -- wait for n milliseconds

pyb.millis() -- get number of milliseconds since hard reset

pyb.Switch() -- create a switch object

Switch methods: (), callback(f)

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

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

pyb.Pin(pin) -- get a pin, eg pyb.Pin('X1')

pyb.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode p

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

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

pyb.ADC(pin) -- make an analog object from a pin

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

pyb.DAC(port) -- make a DAC object

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

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

pyb.rng() -- get a 30-bit hardware random number

pyb.Servo(n) -- create Servo object for servo n (n=1,2,3,4)

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

pyb.Accel() -- create an Accelerometer object

Accelerometer methods: x(), y(), z(), tilt(), filtered_xyz()

Pins are numbered X1-X12, X17-X22, Y1-Y12, or by their MCU name

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

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

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

Control commands:

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, do a soft reset of the board

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

For further help on a specific object, type help(obj)

For a list of available modules, type help('modules')

>>>

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

点亮板载的绿色LED,串口输入命令点亮和熄灭LED

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

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

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

>>>

参考资料

历史精选

欢迎关注我的个人博客:www.wangchaochao.top

或微信扫码关注我的公众号

python stm32-【ST开发板评测】使用Python来开发STM32F411相关推荐

  1. python开发板比较_再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测

    Mu聪明的地方在于它能将代码保存到开发板映射到PC的磁盘上,将文件命名为sum.py并保存.然后看串口中是否有输出.然而并没有,仍然是main.py程序的输出! 原来,CircuitPython在处理 ...

  2. python怎么安装开发版_【干货】开发板上安装python的hiai库和opencv库

    Matrix是已经支持phthon接口了,但是发现目前python的hiai库并没有自动安装,需要自己安装: 话不多说下面是安装步骤: 步骤1. 开发板联网,如果已联网则跳过该步骤: 接下来需要在开发 ...

  3. python 物联网开发板_物联网学什么开发板好?

    可以试试我们的三明治开发板呀!比较容易上手,你可以使用它轻松创建一款通过智能音箱语音或者手机App控制的智能硬件产品,喜欢玩DIY的知友可以体验下. 配合我们的IoT开发平台,即可快速完成智能产品de ...

  4. micropython教程nucleo-f767zi开发板_NUCLEO-F767ZI开发板评测 - 全文

    NUCLEO-F767ZI是意法半导体ST公司推出的低成本Nucleo评估板,目前为止,Nucleo系列可分为Nucleo-32.Nucleo-64和Nucleo-144三种产品,其中Nucleo-3 ...

  5. micropython教程nucleo-f767zi开发板_NUCLEO-F767ZI开发板评测

    NUCLEO-F767ZI是意法半导体ST公司推出的低成本Nucleo评估板,目前为止,Nucleo系列可分为Nucleo-32.Nucleo-64和Nucleo-144三种产品,其中Nucleo-3 ...

  6. 【R329开发板评测】如何优雅地给开发板刷入TinaLinux

    首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 7.23更新:不愧是我,连ssh-server都没给编译进去,现在有了 作为一个萝莉控真的爱死这种小巧精致开发板了 ...

  7. 【R329开发板评测】R329开发板部署aipu模型

    首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 上篇文章r329模拟仿真实现了在模拟器上仿真网络,现在申请到了开发板,就有机会在上面测试下了. 本文需要的原材料 r ...

  8. 米尔科技MPSoC开发板评测

    米尔科技推出的MYD-CZU3EG开发板搭载的就是UltraScale+ MPSoC平台器件 - XCZU3EG,它集成了四核Cortex-A53 处理器,双核 Cortex-R5 实时处理单元以及M ...

  9. 北京迅为i.mx6ull终结者开发板使用手册+嵌入式Linux开发指南+裸机手册下载地址

    i.MX6ULL终结者三大手册,加速学习和开发速度,一秒化无形! <嵌入式Linux开发指南>+<开发板使用手册>+<裸机使用手册> 详细手册点击链接下载:http ...

  10. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

最新文章

  1. 串口的偶校验位设置_详解UART串口
  2. python3.8.5是python3吗_Python 升级到3.8.5
  3. Warning: Using a password on the command line interface can be insecure.解决办法
  4. 好东西,各城市域名解析测试及网速测试
  5. php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作
  6. c语言用指针变量输入数组的长度,C语言之数组的基础练习题(指针变量做函数参数)...
  7. 我最爱用的一款 Redis 可视化管理工具!好用到爆!!!
  8. 二叉树C++ | 广度优先遍历(层级顺序遍历)_2
  9. python批量打印mathcad_Print Conducto全能批量打印工具
  10. python优先级排序_Python 列表排序
  11. 验证堆表(heap table)存储方式
  12. Python如何连mysql数据库教程
  13. 网络编程_手写聊天室_群聊过渡板
  14. pdf书籍笔记助手,BookxNote使用记录
  15. Python爬虫编程思想(82):管理SQLite数据库
  16. bzGhost打造跨平台即时聊天软件之专栏介绍
  17. 330pics-shell scripts-second
  18. Java modifier
  19. 手机sd卡恢复工具android版,SD卡数据恢复软件
  20. js-高德地图规划路线

热门文章

  1. linux下的汇编环境搭建(nasm)
  2. DNS隧道工具使用 不过其网络传输速度限制较大
  3. 双数组Trie树(DoubleArrayTrie)Java实现
  4. MySQL Transaction--快照读和当前读
  5. HDU4858 项目管理 其他
  6. hiho 1483 区间计数问题+二分答案
  7. python包与模块导入
  8. ZK textbox Constraint验证
  9. CSS 特效 (教程还是英文的好)
  10. Leetcode::Balanced Binary Tree