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

python stm32f401_NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台相关推荐

  1. 在Android开发板跑一个LED驱动的历程(个人笔记)

    [版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) 在Android开发板跑一个LED驱动的历程(个人笔记) 1. 板子端, 放置驱动程序 1.1 编写一个驱动程序 驱动程序的编写上, ...

  2. 中国移动M5310 nbiot开发板连接onenet平台全过程

    中国移动M5310 nbiot开发板连接onenet平台全过程 详细介绍一下中移m5310 nbiot开发板对接onenet云平台的全过程,简单实现了温湿度的采集,及数据上报与可视化显示. 一.M53 ...

  3. STM32H743开发板移植micropython并外扩32M的SQPI flash和32M的SDRAM

    文章目录 一.搭建编译环境 二.修改源码 1.复制源码 2.修改源码 2.1修改mpconfigboard.h文件 2.2修改stm32h7xx_hal_conf.h文件 2.3修改pins.csv文 ...

  4. DevEBox STM32F4x1开发板 设置MicroPython STM32F401CC/TM32F411CE STM32F4x1 核心板 开发板 MicroPython

    ▌01 STM32F4x1开发板 STM32F401CC/TM32F411CE STM32F4x1 核心板 开发板 MicroPython .下面测试一下这款基于STM32F401的模块是否可以下载M ...

  5. 易百纳rv1126 a201开发板跑rknn yolov5

    一开始我以为跑yolov5啊, 那必须上debian/ubuntu啊, 不然怎么装python, pytorch?buildroot没有apt, 于是花了大量时间想办法在a201的板子上跑debian ...

  6. Alientek SMT32开发板 跑马灯实验

    原地址,附件下载:http://www.openedv.com/posts/list/18.htm 通过本节的学习,你将了解到STM32的IO口作为输出使用的方法.本节分为如下几个小节: 3.1.1 ...

  7. 支持python的开发板_PYNQ-Z1:支持Python编程的Zynq开发板

    产品描述 PYNQ-Z1开发板支持PYNQ项目,这是一个新的开源框架,使嵌入式编程人员能够在无需设计可编程逻辑电路的情况下即可充分发挥Xilinx Zynq All Programmable SoC( ...

  8. python电力系统分析_ESP32-S2-Saola-1开发板电路分析

    ESP32-S2-Saola-1开发板电路分析 [复制链接] 本帖最后由 dcexpert 于 2020-7-3 14:52 编辑 在开始使用前,对开发板的电路进行简单的分析,这样有助于使用.开发板的 ...

  9. 性能猛兽野火STM32H743 V2开发板跑Linux 5.10,分数爆炸1836.884644

    研究了三个月的移植过程,终于能运行了.用户名:root 密码:123 附件附上二进制文件: 1.将uboot.bin下载到stm32 flash 0x08000000 2.将stm32h743-fir ...

最新文章

  1. git checkout之一 HEAD基本和detached 状态
  2. iNeuOS工业互联网,增加一批PLC、核工业、数字模块、传感器等设备驱动
  3. 剑指offer python实现_剑指Offer第2题详解(附Python、Java代码实现)
  4. java string.interned_Java中的字符串表示形式
  5. php strncmp,PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
  6. 高通camera架构讲解
  7. 支付宝在线支付接口开发教程
  8. 企业微信接收消息服务器配置php,微信企业号配置及在公众号里获取用户信息
  9. matplotlib简介
  10. EF实体框架之CodeFirst五
  11. MySQL利用关系代数进行查询_mysql – 将SQL SELECT查询转换为相应的/等效的关系代数...
  12. 北大 CTSC 2013
  13. 51定时器PWM调节
  14. php如何更改文件名后缀名,php如何修改文件后缀名
  15. 对象存储、文件存储、块存储的区别和联系
  16. 「解决方案」高速公路综合解决方案
  17. 又要数数小绵羊(C++) kkmd66
  18. android广告拦截原理,WebView 广告拦截浅析
  19. html中蝴蝶飞飞怎么制作,【幼儿园折纸蝴蝶教案】手工折纸蝴蝶教案_幼儿园手工蝴蝶教案_亲亲宝贝网...
  20. 一种快速的幂运算方法(底数是自然数e,指数是浮点数)

热门文章

  1. 实现php a标签文件,HTML_如何点击a标签实现弹出input file上传文件对话框,html 复制代码代码如下: SPAN - phpStudy...
  2. springboot项目 访问不到静态资源css
  3. 硬中断 / 软中断的原理和实现
  4. 皮一皮:不能太自信。。。
  5. 一文搞清楚,QPS、TPS、并发用户数、吞吐量
  6. 小调查:足足两周了,下周你上班否?
  7. 三刺激值计算公式_常用的车削、铣削、钻削加工计算公式全在这里了,随用随查...
  8. matlab错误103 577,小编为你作答win7系统安装MATLAB出现 license manager error 103错误的还原教程...
  9. php用命令行脚本执行,使用PHP命令行执行PHP脚本的注意事项
  10. linux中sqlplus不能用_装修中不能用海沙,但是海沙已经偷偷走进了你的家