python stm32-【ST开发板评测】使用Python来开发STM32F411
前言
板子申请了也有一段时间了,也快到评测截止时间了,想着做点有意思的东西,正好前一段时间看到过可以在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相关推荐
- python开发板比较_再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测
Mu聪明的地方在于它能将代码保存到开发板映射到PC的磁盘上,将文件命名为sum.py并保存.然后看串口中是否有输出.然而并没有,仍然是main.py程序的输出! 原来,CircuitPython在处理 ...
- python怎么安装开发版_【干货】开发板上安装python的hiai库和opencv库
Matrix是已经支持phthon接口了,但是发现目前python的hiai库并没有自动安装,需要自己安装: 话不多说下面是安装步骤: 步骤1. 开发板联网,如果已联网则跳过该步骤: 接下来需要在开发 ...
- python 物联网开发板_物联网学什么开发板好?
可以试试我们的三明治开发板呀!比较容易上手,你可以使用它轻松创建一款通过智能音箱语音或者手机App控制的智能硬件产品,喜欢玩DIY的知友可以体验下. 配合我们的IoT开发平台,即可快速完成智能产品de ...
- micropython教程nucleo-f767zi开发板_NUCLEO-F767ZI开发板评测 - 全文
NUCLEO-F767ZI是意法半导体ST公司推出的低成本Nucleo评估板,目前为止,Nucleo系列可分为Nucleo-32.Nucleo-64和Nucleo-144三种产品,其中Nucleo-3 ...
- micropython教程nucleo-f767zi开发板_NUCLEO-F767ZI开发板评测
NUCLEO-F767ZI是意法半导体ST公司推出的低成本Nucleo评估板,目前为止,Nucleo系列可分为Nucleo-32.Nucleo-64和Nucleo-144三种产品,其中Nucleo-3 ...
- 【R329开发板评测】如何优雅地给开发板刷入TinaLinux
首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 7.23更新:不愧是我,连ssh-server都没给编译进去,现在有了 作为一个萝莉控真的爱死这种小巧精致开发板了 ...
- 【R329开发板评测】R329开发板部署aipu模型
首发极术社区 如对Arm相关技术感兴趣,欢迎私信aijishu20加入技术微信群. 上篇文章r329模拟仿真实现了在模拟器上仿真网络,现在申请到了开发板,就有机会在上面测试下了. 本文需要的原材料 r ...
- 米尔科技MPSoC开发板评测
米尔科技推出的MYD-CZU3EG开发板搭载的就是UltraScale+ MPSoC平台器件 - XCZU3EG,它集成了四核Cortex-A53 处理器,双核 Cortex-R5 实时处理单元以及M ...
- 北京迅为i.mx6ull终结者开发板使用手册+嵌入式Linux开发指南+裸机手册下载地址
i.MX6ULL终结者三大手册,加速学习和开发速度,一秒化无形! <嵌入式Linux开发指南>+<开发板使用手册>+<裸机使用手册> 详细手册点击链接下载:http ...
- qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...
作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...
最新文章
- 串口的偶校验位设置_详解UART串口
- python3.8.5是python3吗_Python 升级到3.8.5
- Warning: Using a password on the command line interface can be insecure.解决办法
- 好东西,各城市域名解析测试及网速测试
- php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作
- c语言用指针变量输入数组的长度,C语言之数组的基础练习题(指针变量做函数参数)...
- 我最爱用的一款 Redis 可视化管理工具!好用到爆!!!
- 二叉树C++ | 广度优先遍历(层级顺序遍历)_2
- python批量打印mathcad_Print Conducto全能批量打印工具
- python优先级排序_Python 列表排序
- 验证堆表(heap table)存储方式
- Python如何连mysql数据库教程
- 网络编程_手写聊天室_群聊过渡板
- pdf书籍笔记助手,BookxNote使用记录
- Python爬虫编程思想(82):管理SQLite数据库
- bzGhost打造跨平台即时聊天软件之专栏介绍
- 330pics-shell scripts-second
- Java modifier
- 手机sd卡恢复工具android版,SD卡数据恢复软件
- js-高德地图规划路线