STM32F767ZI-NUCLEO移植运行micropython过程记录

注意,本教程移植microPython是通过烧写hex文件实现的,网上其他教程很多是介绍使用USB DFU方式(设备boot0至高电平,通过DfuSeDemo烧写),由于自己还不熟没有使用这种方式,后续有时间再尝试。
另外本教程是基于STM32F767ZI-NUCLEO开发板所写的,不过对于其他型号的开发板通用可以参考借鉴。

1.系统环境:

Ubuntu18.04, Windows10(转换DFU文件一定要在win系统下操作,ST官方没有给出Linux版本软件

2.预备软件:

  • STSW-STM32080:https://www.st.com/en/development-tools/stsw-stm32080.html,即DfuSe,安装之后的文件如下
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第1张图片
    后面我们需要使用到DfuFileMgr.exe,将dfu文件抽取出hex文件以供烧写

  • STM32CubeProg:https://www.st.com/en/development-tools/stm32cubeprog.html, ST新出的烧录软件,功能强大,三平台通用,没错!Linux也可以使用(Linux下烧写hex,bin文件比较方便,stlink命令行就比较麻烦)

  • STM32CubeIDE

  • PUTTY,连接串口(microPython安装之后是通过串口来显示Python解释器的)

  • microPython DFU文件(每日构建版):https://micropython.org/download#other,官网提示非官方支持,不过也是可以用的
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第2张图片

3. 具体步骤

3.1 dfu文件抽取hex

我们打开之前安装的软件"C:\Program Files (x86)\STMicroelectronics\Software\DfuSe v3.0.6\Bin\DfuFileMgr.exe"
STM32F767ZI-NUCLEO移植运行micropython过程记录_第3张图片
STM32F767ZI-NUCLEO移植运行micropython过程记录_第4张图片
得到hex文件

3.2 烧写hex文件

得到hex文件之后就好办了,通过ST新出的STM32CubeProg软件进行烧写,下载安装后打开:
STM32F767ZI-NUCLEO移植运行micropython过程记录_第5张图片
点击连接之后得到以下信息:

  • ST Link版本
  • 电压
  • 地址
    等相关信息。
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第6张图片
    选择hex文件进行烧录
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第7张图片
    烧录完成之后有以下警告和错误:
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第8张图片
    提示ST LINK连接错误,原因是烧写进去micropython之后已经自动转成虚拟串口了
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第9张图片
    在这里插入图片描述
    STM32F767ZI-NUCLEO移植运行micropython过程记录_第10张图片

4.执行测试microPython

经过前面的步骤已经成功将hex文件烧写进去flash了,下面我们测试一下microPython。

4.1 putty连接串口

设备管理器查看串口号(笔者为COM3),打开putty,设置波特率115200,端口号为COM3
STM32F767ZI-NUCLEO移植运行micropython过程记录_第11张图片

4.2 测试microPython

putty连接串口之后会发现没有任何提示,我们需要按一下开发板上的复位键,接着就要解释器提示了:
STM32F767ZI-NUCLEO移植运行micropython过程记录_第12张图片
microPython网上有很多教程,笔者也还没开始学,只是测试一下搭配环境,这里就以最简单的点灯程序进行测试:
STM32F767ZI-NUCLEO移植运行micropython过程记录_第13张图片
实现的效果是可以控制LED灯翻转。

microPython中的pyb库还有很多种功能操作,不同的开发板对应的IO口也是不同的,这些需要仔细阅读官方的资料手册,笔者这里就不深入研究了
STM32F767ZI-NUCLEO移植运行micropython过程记录_第14张图片

5. 擦除flash上的microPython固件

简单玩了一下microPython之后准备退出该固件,还是以普通方式使用cubeide进行烧写,此时就出现问题了,新建一个cubeide工程进行烧写,会出现以下错误提示:
STM32F767ZI-NUCLEO移植运行micropython过程记录_第15张图片
用STM32CubeProg进行连接同样出现错误:
STM32F767ZI-NUCLEO移植运行micropython过程记录_第16张图片
笔者测试出来的一种解决办法是在STM32CubeProg的ST Link连接选项中的Mode选项改为under reset,便可成功连接,接着擦除整个flash
STM32F767ZI-NUCLEO移植运行micropython过程记录_第17张图片
擦除完之后就可以继续正常编译烧写程序了。

为了解更多硬核知识,请关注笔者[B站频道](https://www.bilibili.com/video/av64531527)

STM32F767ZI-NUCLEO移植运行micropython过程记录_第18张图片

STM32F767ZI-NUCLEO移植运行micropython过程记录_第19张图片
STM32F767ZI-NUCLEO移植运行micropython过程记录_第20张图片

你可能感兴趣的:(STM32单片机,micropython,stm32f767,stm32教程)