首先要下载并安装GNU Tools for ARM Embedded Processors。 https://launchpad.net/gcc-arm-embedded

展开MicroPython源码,打开 stmhal\boards\ 目录

新建一个CANNON目录,将NUCLEO_F401RE下的文件复制到CANNON目录下

如果GNU Tools for ARM已经添加到系统路径,就可以跳到步骤8,直接编译

打开 stmhal 下的 makefile 文件,修改 CROSS_COMPILE = arm-none-eabi- 这一行,在 arm-none-eabi- 前添加编译器的实际路径,注意路径需要使用右斜杠

在 stmhal 目录下,输入 make BOARD=CANNON,就可以编译了。不过这时编译出的代码是不能运行的,因为两个板子的参数不同。

打开 stmhal\boards\CANNON目录,先修改文件stm32f4xx_hal_conf.h找到#define HSI_VALUE    ((uint32_t)8000000)将数字8000000改为16000000,因为小钢炮使用了16M的外部时钟

打开文件 mpconfigboard.h修改LED的GPIO为PB3

修改SW的GPIO为PC13

如果还有时间和精力,可以适当修改其他GPIO

找到#define MICROPY_HW_CLK_PLLM (8)将数字8改为16

修改#define MICROPY_HW_HAS_SWITCH  (1)将1改为0,因为小钢炮上没有用户按键

修改#define MICROPY_HW_LED1             (pin_A5) // Green LD2 LED on Nucleo将pin_A5改为pin_B3,因为两个板子的LED使用不同的GPIO

修改#define MICROPY_HW_LED_ON(pin)      (pin->gpio->BSRRL         = pin->pin_mask)将BSRRL改为BSRRH

修改#define MICROPY_HW_LED_OFF(pin)     (pin->gpio->BSRRH         = pin->pin_mask)将BSRRH改为BSRRL,这是因为两个板子的LED驱动方式不同

添加下面RTC的定义// The pyboard has a 32kHz crystal for the RTC#define MICROPY_HW_RTC_USE_LSE      (1)#define MICROPY_HW_RTC_USE_US       (0)#define MICROPY_HW_RTC_USE_CALOUT   (1)

添加sdcard的定义 ,因为小钢炮支持TF(macroSD)卡。如果不想改线,或者不需要使用TF卡,可以忽略这一步和下面一步。#define MICROPY_HW_HAS_SDCARD       (1)// SD card detect switch#define MICROPY_HW_SDCARD_DETECT_PIN        (pin_A15)#define MICROPY_HW_SDCARD_DETECT_PULL       (GPIO_PULLUP)#define MICROPY_HW_SDCARD_DETECT_PRESENT    (GPIO_PIN_RESET)

小钢炮开发板没有做TF卡的插入检测,所以需要自己飞一根线。开发板上A15(50)和B4(56)是空脚,我选择了A15,因为它更容易焊接一些。如果不想改线,可以修改sdcard.c中的sdcard_is_present函数,让它总是返回true,但是这样就不能检测卡是否插入了。6f3585ca-8a64-11e8-bf6d-001e676a89bd.jpg

打开文件pins.cvs,这里预定义了GPIO的名称

现在可以再次编译源文件了。编译时建议在Linux下编译,因为速度快很多,在windows下编译速度很慢,需要等数分钟。

准备3个短路块,连接P1,将BOOT0连接到VCC,BOOT1连接到GND。

将开发板用macroUSB线连接到计算机,因为设置了BOOT0/BOOT1,所以上电后会进入DFU模式。在Windows下如果是第一次使用,会提示安装驱动,驱动程序就在DfuSe软件的安装目录下。使用DfuSe打开编译后的dfu文件,并下载到开发板。file:///F:/szy/F%E8%AE%BA%E5%9D%9B/micropython/%E5%9C%A8%E5%B0%8F%E9%92%A2%E7%82%AE%E5%BC%80%E5%8F%91%E6%9D%BF%E4%B8%8A%E8%BF%90%E8%A1%8CMicroPython/2.jpg6f5045f4-8a64-11e8-bf6d-001e676a89bd.jpg

将BOOT0连接到GND,开发板重新上电。这时会自动安装USB磁盘,出现PYBFLASH驱动器。在windows下还会安装虚拟串口,如果找不到驱动程序,可以到新出现的PYBFLASH驱动器上查找。

打开一个串口终端软件,如kitty、xshell、超级终端等,设置波特率为115200,就可以开始玩micropython了。

micropython开发板有什么用_【MicroPython】移植到小钢炮开发板相关推荐

  1. java开发环境及数据类型实验_实验项目1 Java开发环境与语言基础

    <实验项目1 Java开发环境与语言基础>由会员分享,可在线阅读,更多相关<实验项目1 Java开发环境与语言基础(14页珍藏版)>请在人人文库网上搜索. 1.实验项目1 Ja ...

  2. 嵌入式核心板研发之路_启动迅为4412核心板_稳定运行_超强扩展能力

    TOP-4412核心板配置全新的Cortex-A9架构1.4GHz四核处理器,三星exynos 4412处理器拥有32nm HKMG(高K金属栅极技术)制程,支持双通道LPDDR2 1066.整体效能 ...

  3. java web开发实战经典 源码_李兴华 java_web开发实战经典 源码 完整版收集共享

    李兴华 java_web开发实战经典 源码 完整版收集共享 01f8a7  在  2018-11-07 20:41:33  上传  10.92 MB 第1章 JAVA WEB开发简介 1.1.WEB发 ...

  4. 开发环境 测试环境 定义_如何快速搭建ES开发测试环境?

    前段时间,工作需要,自己搭了一个ES测试环境,我把整个部署的过程都做了笔记,在这里也做个归档,有需要的朋友也可以看看. 两大件简介 要安装一个标配的ELK环境,其实应该还有 Logstash,但是由于 ...

  5. 软件开发众包 个人接单_如何将研究与开发众包

    软件开发众包 个人接单 Taking a cue from the success of Dell's IdeaStorm, in which consumers vote on features t ...

  6. 编译linux系统到开发板,Linux系统有关交叉编译和移植到6410开发板上的简单过程...

    在进行移植之前,要检查一下目标机(这里指6410开发板)与宿主机之间的接线问题,即串口线.网线是否正确连接,目标机的电源是否插好!在接线问题解决后,才能保证交叉编译正常进行! 个人理解,移植的主要思想 ...

  7. 野火Linux开发板接入华为云,Huawei_LiteOS——STM32F1移植(野火开发板)

    软件环境:Keil 5 Huawei_LiteOS Version:2018.11.21 源代码下载地址: 移植代码分享(包含源码): 1.  源码文件及目录介绍 如图所示,源码共有6个目录,移植需要 ...

  8. ebs开发入门 oracle 知乎_微信小程序云开发入门第一篇---开发准备事项

    在开始本文的正式内容之前,先允许我做一个简单的自我介绍,我是一名嵌入式软件开发人员,目前在一家音视频处理芯片公司做linux系统下音视频开发的相关工作,算是嵌入式软件开发行业的老人了,如果您对嵌入式行 ...

  9. python开发小程序拼团_拼团商城模式开发(如何开发)

    什么是全民拼团系统 微信拼团是团购+社交分享模式的演变,兼具超强吸粉与促销功能.商联达全民拼团系统帮助商家快速搭建自己的微信拼团平台,自己收钱.自己累积粉丝.自己管理分销渠道.用户可通过商家的拼团商城 ...

最新文章

  1. 有了这个Java项目经历,面大厂稳了!
  2. Android 帧动画何时停止播放
  3. 6410 linux内核移植
  4. NodeJS+Express+Mysql+MongoDB之环境配置
  5. Markdown演示格式语法
  6. BGP——Route-map扩展(讲解+配置)@
  7. 惠普 Compaq Presario V3704TX改XP实战手记
  8. 1040. Airline Company
  9. python中rjust_Python字符串rjust()和ljust()
  10. 【其他】使win7尽量少占用C盘空间
  11. java--小示例:-2:优化版本,多个文件的调用。
  12. 有什么做电音的软件?3款好用App让你爱上唱歌
  13. tomcat日志配置——如何查看日志
  14. Weka的下载与安装
  15. ffmpeg 码率控制(总结篇)
  16. QT图片缩放、拖动、重置
  17. 百度富文本编辑器ueditor在https协议下无法正常插入动态地图
  18. html5通用兄第选择器,css 通用兄弟选择器( ~ )
  19. 运行linux较好的电脑,现在Linux运行在 99.6%的TOP500超级计算机上
  20. 汽车无钥匙进入系统工作原理、汽车无钥匙进入系统简介

热门文章

  1. 拯救公主 计蒜客 BFS+二进制状压
  2. 文末赠书 | 2020年的华为天才少年,已成团队leader,26岁CV博士毕业,为车打造一双慧眼...
  3. mysql中bcnf_数据库 - BC范式(BCNF)
  4. 关于ModifyStyle ModifyStyleEx修改自定义控件的问题
  5. 第三方支付接口,银行接口
  6. k8s集群部署二进制(一)
  7. 用开源做出来的必须开源吗_开源应该符合道德吗?
  8. websocket的使用实例,门禁语音合成
  9. 设计模式—抽象工厂模式(java实现示例)
  10. 代理模式——为他人做嫁衣裳