python stm32-尝试一下使用Python来开发STM32
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相关推荐
- stm32 python界面开发_【STM32开发】使用Qt Creator 开发STM32
在之前的文章中我们介绍了如何使用VSCode去构建一个STM32的单片机项目,今天我们来说一下使用 Qt Creator 来开发STM32单片机. 0x01: 开发环境准备 PlatformIO Co ...
- python 携程_python 携程爬虫开发笔记
前言 最近购买了<Python3 爬虫.数据清洗与可视化实战>,刚好适逢暑假,就尝试从携程页面对广州的周边游产品进行爬虫数据捕捉. 因为才学Python不够一个星期,python的命名规范 ...
- python用什么软件编程-python开发用什么编辑器
工欲善其事必先利其器,估计大部分的pythoner都是从python IDE开始了python之路.有很多的python IDE工具可以用,但是要从中选出一个用着趁手的IDE却是一项艰巨的任务. 你可 ...
- python和java哪个好-Python和Java发展前景哪个好?Python开发学习
Python开发的工作前景好吗?Python该怎么学?Python和Java是许多人喜欢比较的两种主要编程语言.一个是潜力无限的后起之秀.另一个是行业经典,成熟稳定.对于那些想要入行互联网从事IT技术 ...
- atom配置python环境_用Python制作网站Django实操与开发环境配置
上篇文章简单介绍了Django的基础知识,本篇将进入实际操作部分,包括Django的运行环境.开发环境配置与新建项目等内容.由于篇幅原因,笔者不得不把Demo演示放到下一篇文章,望读者(如果有的话)见 ...
- python 创意项目_针对python开发人员的10个很棒的python项目创意
python 创意项目 The joy of coding Python should be in seeing short, concise, readable classes that expre ...
- 计算机科学与技术python方向是什么意思-第一模块·开发基础-第1章 Python基础语法...
Python开发工具课前预习 01 Python全栈开发课程介绍1 02 Python全栈开发课程介绍2 03 Python全栈开发课程介绍3 04 编程语言介绍(一) 05 编程语言介绍(二)机器语 ...
- python与人工智能编程-最适合人工智能开发的5种编程语言,Python排第一
原标题:最适合人工智能开发的5种编程语言,Python排第一 文章转载自超图集团,版权归原作者和刊载媒体所有. 近年来,人工智能(AI)正在不断释放科技革命和产业变革积蓄的巨大能量,深刻改变着人类生产 ...
- python与人工智能编程-最适合人工智能开发的5种编程语言,你知道几种?
原标题:最适合人工智能开发的5种编程语言,你知道几种? 私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包. 人工智能技术的提升不仅为企业的运营带来了效率,而且为人民的生活带来了便利. 迄 ...
最新文章
- 1 字节的 utf-8 序列的字节 1 无效_字节码文件结构详解
- xp系统如何将计算机放到桌面快捷方式,如何整理xp系统电脑桌面快捷方式图标...
- python flask 设置 header 响应体、响应头、状态码
- TCP的TIME_WAIT状态
- 亚马逊的vps多少钱一个月_如何查看您在亚马逊上花了多少钱
- python判断是否为完全数_Python识别完美数
- base64 linux_渗透测试常用Linux命令总结
- 日志存储 elasticsearch vs clickhouse
- python搜索关键词自动提交_简单爬虫:调用百度接口,实现关键词搜索(python_003)...
- 【BZOJ1880】[Sdoi2009]Elaxia的路线(最短路)
- 如何在 Azure 虚拟机里配置条带化
- codejock toolkit pro 19.2 for MFC
- 贝叶斯网络模型基础——R语言
- 【centos】快速截图设置
- Windows文件换行符转Linux换行符
- 家庭网关——开启数字家庭的钥匙
- 思维导图工具之Mindmeister
- 【转载】儒林外史人物——周进(二)
- Centos7笔记之Postfix邮件服务器搭建
- (王道考研计算机网络)第五章传输层-第一节:传输层概述、功能和端口