STM32
直播中

王桂兰

7年用户 1192经验值
私信 关注
[问答]

Micropython平台是如何实现在NUCLEO-F401RE开发板跑起来的

Micropython平台是如何实现在NUCLEO-F401RE开发板跑起来的?有哪些操作流程?

回帖(3)

张华

2021-11-8 10:29:40
  NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台
  开发准备:
  软件:DfuSeDemo、STM32 ST-LINK Utility、虚拟串口驱动、OpenIOE、uPyCraft、Notepad++、
  开发板上手:
  一、固件烧录
  1、固件获取。
  去Micropython的官网下载,我下载的是最新的固件。
  Micropython源码包
  
  或者在github上下载Micropython的源码包,然后在Linux(ubuntu)系统下利用gcc编译器和交叉编译器编译源码生成dfu文件和hex文件,这个比较灵活,可以根据芯片选择编译,可不用局限与官网提供的固件。
  Micropython源码包:https://github.com/micropython/micropython
  步骤参考:https://www.jianshu.com/p/98b1c9bb6501?utm_source=desktop&utm_medium=timeline
  2、固件下载。
  A、duf文件直接下载。
  这个比较麻烦,建议使用后者下载,需要两根USB线,一根提供电,另一根数据连接,连接方式如下图所示。
  
  和串口下载程序一样,使用DFU烧录固件前,也要先把STM32切换为系统存储器启动模式:即下载模式。
  上电之前要先设置BOOT0=1,BOOT1(PB2) =0,设置完成之后,连接电脑,设备管理会出现一个DFU设备。
  
  打开DfuSeDemo软件,选择已经下载的固件(.dfu文件),然后点击Upgrade升级,在弹出的界面,点击“是”。 最后等待升级完成,断电,把BOOT短接线拔掉(启动不需要BOOT选择),重新上电。
  
  下载完成。
  B、HEX文件下载。
  先把,dfu文件转换成HEX文件。打开DfuSeDemo软件的安装目录运行DfuFileMgr.exe选择从DFU转换成HEX选项,然后选择从官网下载的dfu文件进行转换。
  
  打开软件STM32 ST-LINK Utility,利用开发板自带的ST-link进行烧录(BOOT0接地即可),依次连接、擦除、烧录。
  
  二、点亮LED
  1、连接开发板,验证固件。
  固件下载好之后,就可以使用串口进行python代码的烧录。串口默认是芯片的UART2 : PA2 à TX PA3 à RX 。
  打开PUTTY或OpenIOE或uPyCraft、串口调试助手等软件。连接串口(任务管理器对应的虚拟串口,波特率115200),按下复位键就会打印板子的固件信息。可直接输入指令操作板子上LD2的亮与灭。
  
  注:
  1、可直接使用开发板上ST-link的虚拟串口(需要安装驱动),也可外接串口。
  2、外接串口模块,比如用CP2102模块,来代替ST-link的虚拟串口进行连接。
  连接方法:TX à D1/TX RX à D0/RX ,这里需要SB13、SB14的0R电阻去掉,并短接SB62和SB63,目的是断开串口2与ST-link的虚拟串口,并将串口2引出到外接排针。
  2、烧录 .py 程序。
  我的思路是:用Notepad++编辑代码,uPyCraft检查语法问题、OpenIOE进行烧录程序、最后测试程序。
  在Notepad++里编辑如下点灯代码:
  
  然后用uPyCraft打开main.py文件进行语法检查,如图。如果有问题就修改,知道没有问题为止。
  
  最后用OpenIOE进行代码烧录:先连接串口,然后点击列举文件,最后点击上传文件。文件上传完成后,可以点击复位执行,或者按下开发板的复位按钮,就可以看到开发板的LD2闪烁5下。
  
  
  至此,程序烧录验证完毕。
  注:我为什么要加上面一套组合,分析:
  1、Notepad++ 进行程序编辑,可以设置为python的格式:缩进、关键字等,整个风格比较简介明了,代码观赏性也比较好。
  2、python程序有严格的代码格式,只要你一行代码格式有问题,那么整个程序就运行不了,而uPyCraft可以检查语法,可缩短因为代码格式问题而造成的时间损失。
  3、OpenIOE下载方便,我在使用过程中uPyCraft虽然也可以下载程序,但是时不时的下载不成功,而OpenIOE软件可以很轻松的下载程序,不过需要注意,先用列举文件,来暂停程序的运行,然后再下载代码。
  三、Micropython程序例程。
  相关语法可以参考一下两个网站:
  Pyb – 板级功能:(内置函数的解释和使用例程)
  https://docs.singtown.com/micropython/zh/latest/openmvcam/library/pyb.html?highlight=reset
  uPYCraft及machine的一下例程:(是ESP32使用的例程,但是可以参考)
  https://dfrobot.gitbooks.io/upycraft_cn/content/3.2.2%20Pin.html
  1、点灯例程:IO翻转实验,点灯有两种方式。
  一种是:
  pyb.LED(1).on()
  使用pyb,默认的LED来点灯,这种是底层已经封装好,直接调用。
  另一种是:
  LED_pin = Pin(“PA5”, Pin.OUT_PP)
  LED_pin.value(1)
  这种是配置IO引脚,来实现点灯,可以任意配置管脚,通过原理图可知,板载LED连接的是芯片的PA5引脚。
  2、按键例程:中断实验。
  程序:
  
  运行现象:
  
  3、舵机例程:PWM实验。
  使用的是PB0引脚,查看STM32F401RE的芯片手册,PB0引脚对应的是定时器3的通道3。
  
  舵机工作原理是,20mS的方波,高电平时间0.5mS – 2.5mS 控制舵机0°– 180°,所以对应的频率就是50Hz 占空比2.5% - 12.5%
  
  
  4、其它例程。
  比如IIC、串口、中断、定时器等应用可以参考例程网站的应用。
举报

顾鸿兰

2021-11-8 10:29:53
  NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台
  开发准备:
  软件:DfuSeDemo、STM32 ST-LINK Utility、虚拟串口驱动、OpenIOE、uPyCraft、Notepad++、
  开发板上手:
  一、固件烧录
  1、固件获取。
  去Micropython的官网下载,我下载的是最新的固件。
  Micropython源码包
  
  或者在github上下载Micropython的源码包,然后在Linux(ubuntu)系统下利用gcc编译器和交叉编译器编译源码生成dfu文件和hex文件,这个比较灵活,可以根据芯片选择编译,可不用局限与官网提供的固件。
  Micropython源码包:https://github.com/micropython/micropython
  步骤参考:https://www.jianshu.com/p/98b1c9bb6501?utm_source=desktop&utm_medium=timeline
  2、固件下载。
  A、duf文件直接下载。
  这个比较麻烦,建议使用后者下载,需要两根USB线,一根提供电,另一根数据连接,连接方式如下图所示。
  
  和串口下载程序一样,使用DFU烧录固件前,也要先把STM32切换为系统存储器启动模式:即下载模式。
  上电之前要先设置BOOT0=1,BOOT1(PB2) =0,设置完成之后,连接电脑,设备管理会出现一个DFU设备。
  
  打开DfuSeDemo软件,选择已经下载的固件(.dfu文件),然后点击Upgrade升级,在弹出的界面,点击“是”。 最后等待升级完成,断电,把BOOT短接线拔掉(启动不需要BOOT选择),重新上电。
  
  下载完成。
  B、HEX文件下载。
  先把,dfu文件转换成HEX文件。打开DfuSeDemo软件的安装目录运行DfuFileMgr.exe选择从DFU转换成HEX选项,然后选择从官网下载的dfu文件进行转换。
  
  打开软件STM32 ST-LINK Utility,利用开发板自带的ST-link进行烧录(BOOT0接地即可),依次连接、擦除、烧录。
  
  二、点亮LED
  1、连接开发板,验证固件。
  固件下载好之后,就可以使用串口进行python代码的烧录。串口默认是芯片的UART2 : PA2 à TX PA3 à RX 。
  打开PUTTY或OpenIOE或uPyCraft、串口调试助手等软件。连接串口(任务管理器对应的虚拟串口,波特率115200),按下复位键就会打印板子的固件信息。可直接输入指令操作板子上LD2的亮与灭。
  
  注:
  1、可直接使用开发板上ST-link的虚拟串口(需要安装驱动),也可外接串口。
  2、外接串口模块,比如用CP2102模块,来代替ST-link的虚拟串口进行连接。
  连接方法:TX à D1/TX RX à D0/RX ,这里需要SB13、SB14的0R电阻去掉,并短接SB62和SB63,目的是断开串口2与ST-link的虚拟串口,并将串口2引出到外接排针。
  2、烧录 .py 程序。
  我的思路是:用Notepad++编辑代码,uPyCraft检查语法问题、OpenIOE进行烧录程序、最后测试程序。
  在Notepad++里编辑如下点灯代码:
  
  然后用uPyCraft打开main.py文件进行语法检查,如图。如果有问题就修改,知道没有问题为止。
  
  最后用OpenIOE进行代码烧录:先连接串口,然后点击列举文件,最后点击上传文件。文件上传完成后,可以点击复位执行,或者按下开发板的复位按钮,就可以看到开发板的LD2闪烁5下。
  
  
  至此,程序烧录验证完毕。
  注:我为什么要加上面一套组合,分析:
  1、Notepad++ 进行程序编辑,可以设置为python的格式:缩进、关键字等,整个风格比较简介明了,代码观赏性也比较好。
  2、python程序有严格的代码格式,只要你一行代码格式有问题,那么整个程序就运行不了,而uPyCraft可以检查语法,可缩短因为代码格式问题而造成的时间损失。
  3、OpenIOE下载方便,我在使用过程中uPyCraft虽然也可以下载程序,但是时不时的下载不成功,而OpenIOE软件可以很轻松的下载程序,不过需要注意,先用列举文件,来暂停程序的运行,然后再下载代码。
  三、Micropython程序例程。
  相关语法可以参考一下两个网站:
  Pyb – 板级功能:(内置函数的解释和使用例程)
  https://docs.singtown.com/micropython/zh/latest/openmvcam/library/pyb.html?highlight=reset
  uPYCraft及machine的一下例程:(是ESP32使用的例程,但是可以参考)
  https://dfrobot.gitbooks.io/upycraft_cn/content/3.2.2%20Pin.html
  1、点灯例程:IO翻转实验,点灯有两种方式。
  一种是:
  pyb.LED(1).on()
  使用pyb,默认的LED来点灯,这种是底层已经封装好,直接调用。
  另一种是:
  LED_pin = Pin(“PA5”, Pin.OUT_PP)
  LED_pin.value(1)
  这种是配置IO引脚,来实现点灯,可以任意配置管脚,通过原理图可知,板载LED连接的是芯片的PA5引脚。
  2、按键例程:中断实验。
  程序:
  
  运行现象:
  
  3、舵机例程:PWM实验。
  使用的是PB0引脚,查看STM32F401RE的芯片手册,PB0引脚对应的是定时器3的通道3。
  
  舵机工作原理是,20mS的方波,高电平时间0.5mS – 2.5mS 控制舵机0°– 180°,所以对应的频率就是50Hz 占空比2.5% - 12.5%
  
  
  4、其它例程。
  比如IIC、串口、中断、定时器等应用可以参考例程网站的应用。
举报

李姗蔓

2021-11-8 10:31:33
  NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台
  开发准备:
  软件:DfuSeDemo、STM32 ST-LINK Utility、虚拟串口驱动、OpenIOE、uPyCraft、Notepad++、
  开发板上手:
  一、固件烧录
  1、固件获取。
  去Micropython的官网下载,我下载的是最新的固件。
  Micropython源码包
  
  或者在github上下载Micropython的源码包,然后在Linux(ubuntu)系统下利用gcc编译器和交叉编译器编译源码生成dfu文件和hex文件,这个比较灵活,可以根据芯片选择编译,可不用局限与官网提供的固件。
  Micropython源码包:https://github.com/micropython/micropython
  步骤参考:https://www.jianshu.com/p/98b1c9bb6501?utm_source=desktop&utm_medium=timeline
  2、固件下载。
  A、duf文件直接下载。
  这个比较麻烦,建议使用后者下载,需要两根USB线,一根提供电,另一根数据连接,连接方式如下图所示。
  
  和串口下载程序一样,使用DFU烧录固件前,也要先把STM32切换为系统存储器启动模式:即下载模式。
  上电之前要先设置BOOT0=1,BOOT1(PB2) =0,设置完成之后,连接电脑,设备管理会出现一个DFU设备。
  
  打开DfuSeDemo软件,选择已经下载的固件(.dfu文件),然后点击Upgrade升级,在弹出的界面,点击“是”。 最后等待升级完成,断电,把BOOT短接线拔掉(启动不需要BOOT选择),重新上电。
  
  下载完成。
  B、HEX文件下载。
  先把,dfu文件转换成HEX文件。打开DfuSeDemo软件的安装目录运行DfuFileMgr.exe选择从DFU转换成HEX选项,然后选择从官网下载的dfu文件进行转换。
  
  打开软件STM32 ST-LINK Utility,利用开发板自带的ST-link进行烧录(BOOT0接地即可),依次连接、擦除、烧录。
  
  二、点亮LED
  1、连接开发板,验证固件。
  固件下载好之后,就可以使用串口进行python代码的烧录。串口默认是芯片的UART2 : PA2 à TX PA3 à RX 。
  打开PUTTY或OpenIOE或uPyCraft、串口调试助手等软件。连接串口(任务管理器对应的虚拟串口,波特率115200),按下复位键就会打印板子的固件信息。可直接输入指令操作板子上LD2的亮与灭。
  
  注:
  1、可直接使用开发板上ST-link的虚拟串口(需要安装驱动),也可外接串口。
  2、外接串口模块,比如用CP2102模块,来代替ST-link的虚拟串口进行连接。
  连接方法:TX à D1/TX RX à D0/RX ,这里需要SB13、SB14的0R电阻去掉,并短接SB62和SB63,目的是断开串口2与ST-link的虚拟串口,并将串口2引出到外接排针。
  2、烧录 .py 程序。
  我的思路是:用Notepad++编辑代码,uPyCraft检查语法问题、OpenIOE进行烧录程序、最后测试程序。
  在Notepad++里编辑如下点灯代码:
  
  然后用uPyCraft打开main.py文件进行语法检查,如图。如果有问题就修改,知道没有问题为止。
  
  最后用OpenIOE进行代码烧录:先连接串口,然后点击列举文件,最后点击上传文件。文件上传完成后,可以点击复位执行,或者按下开发板的复位按钮,就可以看到开发板的LD2闪烁5下。
  
  
  至此,程序烧录验证完毕。
  注:我为什么要加上面一套组合,分析:
  1、Notepad++ 进行程序编辑,可以设置为python的格式:缩进、关键字等,整个风格比较简介明了,代码观赏性也比较好。
  2、python程序有严格的代码格式,只要你一行代码格式有问题,那么整个程序就运行不了,而uPyCraft可以检查语法,可缩短因为代码格式问题而造成的时间损失。
  3、OpenIOE下载方便,我在使用过程中uPyCraft虽然也可以下载程序,但是时不时的下载不成功,而OpenIOE软件可以很轻松的下载程序,不过需要注意,先用列举文件,来暂停程序的运行,然后再下载代码。
  三、Micropython程序例程。
  相关语法可以参考一下两个网站:
  Pyb – 板级功能:(内置函数的解释和使用例程)
  https://docs.singtown.com/micropython/zh/latest/openmvcam/library/pyb.html?highlight=reset
  uPYCraft及machine的一下例程:(是ESP32使用的例程,但是可以参考)
  https://dfrobot.gitbooks.io/upycraft_cn/content/3.2.2%20Pin.html
  1、点灯例程:IO翻转实验,点灯有两种方式。
  一种是:
  pyb.LED(1).on()
  使用pyb,默认的LED来点灯,这种是底层已经封装好,直接调用。
  另一种是:
  LED_pin = Pin(“PA5”, Pin.OUT_PP)
  LED_pin.value(1)
  这种是配置IO引脚,来实现点灯,可以任意配置管脚,通过原理图可知,板载LED连接的是芯片的PA5引脚。
  2、按键例程:中断实验。
  程序:
  
  运行现象:
  
  3、舵机例程:PWM实验。
  使用的是PB0引脚,查看STM32F401RE的芯片手册,PB0引脚对应的是定时器3的通道3。
  
  舵机工作原理是,20mS的方波,高电平时间0.5mS – 2.5mS 控制舵机0°– 180°,所以对应的频率就是50Hz 占空比2.5% - 12.5%
  
  
  4、其它例程。
  比如IIC、串口、中断、定时器等应用可以参考例程网站的应用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分