【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(<n>)
  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()
>>>

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

参考资料

历史精选



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

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

原文地址:https://www.cnblogs.com/whik/p/10976755.html

时间: 2024-11-03 01:36:07

【ST开发板评测】使用Python来开发STM32F411的相关文章

4412开发板三星cortex-A9四核开发板友坚科技

UT4412BV03开发板介绍 4412开发板三星cortex-A9四核开发板友坚科技 友坚恒天科技urbetter.net专注于三星平台产品的研发,是三星在中国最具实力的方案公司.公司主打的三星平板电脑方案销量,连续多年稳居第一.公司定位于中高端产品的研发,具有多年的嵌入式产品研发经验:基于三星 A15-Exynos 5250.A9-Exynos 4412.A8-S5PV210.ARM11-S3C6410.ARM9-S3C2416等处理器,开发了系列化的产品,为客户提供了全面的产品选择及专业化

(笔记) (ARM) QQ2440 开发板改为 GT2440 (Linux) (开发板)

QQ2440改 GT24401跟换Nand Flash   将QQ2440的Nand Flash k9f1208u0b (64M)焊接取下来,换上k9f2g08u0a 或k9f2g08u0b (256M)2.去掉QQ2440板上右边靠中间的电阻 NR5,不去掉无法从Nand Flash 启动 这里去掉电阻配置 Nand Flash Memory Configuration Table 对应的管脚 NCON0,      GPG13,    GPG14,    GPG15            

嵌入式学习-4412开发板学习-迅为4412开发板can测试技术分享

迅为CAN 测试 详情了解:http://topeetboard.com  更多了解:https://arm-board.taobao.com 本文档适用的范围 ① 硬件平台 :4412精英版以及全能版开发板.(4418/6818开发板以及imx6q开发板测试的道理是一样的可能细节有些不同,在这里我没有做实验,感兴趣的可以按照这个文档测试一下) ②软件平台 :Android4.0.Android4.4.QT.ubuntu 测试程序: 这个在网盘上有提供,另外我也会上传 一.硬件连接 can 通信

samrt210开发板ping-系列问题(开发板ping通主机,主机ping通虚拟机,唯独~开发板ping不通虚拟机)

硬件:PC机.虚拟机(Linux).开发板(smart210) 常用模型: 注:1).有线网卡与无线网不可同连一个路由器,不可在同网段: 2).vmware选择桥接模式,虚拟网络适配器选定具体的网卡名称(有线/无线): 3).将开发板.PC机.虚拟机的IP置于同网段下: 选用模型(2)作为目标 1.确保smart210_uboot下载至开发板成功: 2.按照目标模型联通,用直连网线连接开发板.路由器.PC机: 3.#setenv gatewayip 192.168.1.1 (网关)   netm

嵌入式开发板 迅为4412开发板 搭建Qt应用程序开发环境

集成开发软件qtcreator-3.2.2下载 官网下载 选择GPL/LGPL协议 选择离线下载 选择Linux Host 这里需要注意的是,如果只下载"Qt Creator",是不带运行环境的. 迅为电子网盘下载 "iTOP-4412开发板搭建编译环境所需要的工具包以及补丁包" "07-Qt_Creator" "QtE_IDE3.2.2" "qt-opensource-linux-x64-android-5.3.2

ARM开发板如何选型-I.MX6Q开发板

拥有丰富扩展能力,供货周期长的开发平台,省事安心   处理器:迅为-i.MX6开发板恩智浦Cortex-A9 四核i.MX6Q处理器,主频1GHz,内存2G,存储16GB. 系统支持:i.MX6开发板系统支持LINUX,Android,Ubuntu系统. 核心板介绍:迅为-i.MX6开发板采用核心板+底板结构设计,核心板引出脚多达320PIN,高品质,稳定性强 ,可以更灵活地进行产品开发,快速设计出更具有竞争力的产品. 底板介绍:支持4G模块,GPS定位,WIFI,SATA,千兆以太网,CAN/

研发产品-开发板如何选型?IMX6开发板怎么样?

很多工程师在选择嵌入式开发板的时候往往会陷入选择困难症,选择硬件开发板是项目的开始,选择是否正确及其关乎一个项目是不是能成功,那我们怎么选呢 处理器:迅为-i.MX6开发板恩智浦Cortex-A9 四核i.MX6Q处理器,主频1GHz,内存2G,存储16GB. 系统支持:i.MX6开发板系统支持LINUX,Android,Ubuntu系统. 核心板介绍:迅为-i.MX6开发板采用核心板+底板结构设计,核心板引出脚多达320PIN,高品质,稳定性强 ,可以更灵活地进行产品开发,快速设计出更具有竞争

【VGA开发板】迅为4412开发板支持VGA模块

产品名称:VGA模块(iTOP-4412精英版专用) 产品介绍:支持普通电脑显示器,稳定无闪烁, 可随开发板自动兼容不同分辨率,例如1024*768,以及1280*800等 iTOP-4412 开发平台 开发环境: Android4.0/Android4.4.4 linux  3.0.15 Ubuntu12.04开发环境 产品特点: 处理器: Exynos 4412 处理器,Cortex-A9四核,功耗性能俱佳! 性能: 1GB(可选2GB) 双通道 64bit数据总线 DDR3: 4GB(可选

学完STM32开发板,就选4412开发板让你有目标的学习嵌入式开发

600余页用户使用手册 linux实验手册(资料不断更新)100期配套零基础高清视频教程 轻松入门 (资料不断更新)2000人售后认证群 在线支持 售后无忧 源码全开源  原厂技术资料经典学习书籍推荐 部分视频目录分享: iTOP-4412精英版搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具快速读取与超大容量,纵使海量思考也能及时处理.独家配备三星S5M8767电源管理,最优架构! 配备Android.Linux + Qt.Ubuntu操作系统,开启学习.研发的