NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台

                                        NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台

                                                               

开发准备:

软件:DfuSeDemo、STM32 ST-LINK Utility、虚拟串口驱动、OpenIOE、uPyCraft、Notepad++、

开发板上手:

一、固件烧录

      1、固件获取。

      去Micropython的官网下载,我下载的是最新的固件。

      Micropython源码包:http://www.micropython.org/download

      或者在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、串口、中断、定时器等应用可以参考例程网站的应用。

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值