首先在树莓派下载并安装gcc编译器。 sudo apt-get install gcc

sudo apt-get install gcc-arm-none-eabi

下载MicroPython源码(https://github.com/micropython/micropython)解压到/home/pi/micropython-master。

下载stm32的hal库文件(https://github.com/micropython/stm32lib/tree/668d7a9e54aea98f8fe8a858eac1d3daa80fa824),复制解压后的库文件到/home/pi/micropython-master/lib/stm32lib。

打开/home/pi/micropython-master/ports/stm32/boards文件夹,新建CANNON文件夹,复制NUCLEO_F401RE下全部文件到CANNON。 cd /home/pi/micropython-master/ports/stm32/boards

sudo mkdir CANNON

sudo cp NUCLEO_F401RE/* CANNON/

进入/home/pi/micropython-master/mpy-cross文件夹,执行编译make. cd /home/pi/micropython-master/mpy-cross

make

进入/home/pi/micropython-master/ports/stm32文件夹,执行编译sudo make BOARD=CANNON。 cd /home/pi/micropython-master/ports/stm32

sudo make BOARD=CANNON

经过上面的操作基本编译通过产生dfu和hex文件,验证了源码文件健全无误。接下来修改小钢炮的板子参数一些配置(小钢炮和官方401开发板的配置是不一样的,这修改部分也可以在上面第4步之后进行,不过建议验证源码编译无误后在进行修改)。

修改stm32/boards/CANNON目录下stm32f4xx_hal_conf.h文件

小钢炮使用的是16M的外部晶振,

修改#define HSE_VALUE (8000000)为#define HSE_VALUE (16000000)

修改stm32/boards/CANNON目录下mpconfigboard.h文件 1.小钢炮没有用户按键,

修改#define MICROPY_HW_HAS_SWITCH (1)为#define MICROPY_HW_HAS_SWITCH (0)

2.对应晶体宏定义,

修改

#define MICROPY_HW_CLK_USE_HSI (1)

#if MICROPY_HW_CLK_USE_HSI

#define MICROPY_HW_CLK_PLLM (16)

#else

#define MICROPY_HW_CLK_PLLM (8)

#endif

#define MICROPY_HW_CLK_PLLM (16)

3.SPI1片选脚,

修改#define MICROPY_HW_SPI1_NSS (pin_A15)为#define MICROPY_HW_SPI1_NSS (pin_A4)

4.小钢炮只有一个用户LED(PB3)并且驱动电平与官方相反,

修改

#define MICROPY_HW_LED1 (pin_A5)

#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))

#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))

#define MICROPY_HW_LED1 (pin_B3)

#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_low(pin))

#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_high(pin))

5.添加如下宏定义:

// 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)

//A9 is used for USB VBUS detect, and A10 is used for USB_FS_ID.

// UART1 is also on PB6/7 but PB6 is tied to the Audio SCL line.

// Without board modifications, this makes UART1 unusable on this board.

#define MICROPY_HW_UART1_TX (pin_A9)

#define MICROPY_HW_UART1_RX (pin_A10)

// USB config

#define MICROPY_HW_ENABLE_USB (1)

#define MICROPY_HW_USB_FS (1)

修改stm32/boards/CANNON目录下pins.csv文件(文本编辑器下修改的)修改GPIO的预定义名。 修改

LED_GREEN,PA5

LED_ORANGE,PA5

LED_RED,PA5

LED_GREEN,PB3

LED_ORANGE,PB3

LED_RED,PB3

修改/home/pi/micropython-master/ports/stm32目录下sdcard.c文件 小钢炮的SD卡状态检测没有连接到stm32引脚上,屏蔽SD卡检测。

修改bool sdcard_is_present(void) 函数为

bool sdcard_is_present(void) {

return 1;

}

适配小钢炮板参数修改完毕,再次进入/home/pi/micropython-master/ports/stm32文件夹,执行编译sudo make BOARD=CANNON。 cd /home/pi/micropython-master/ports/stm32

sudo make BOARD=CANNON

micropython stm32f401_在STM32F401RE(小钢炮CANNON开发板)移植MicroPython相关推荐

  1. 在STM32F401RE(小钢炮CANNON开发板)移植MicroPython

    版权声明:本文为博主原创文章,未经博主允许不得转载. 小钢炮开发板STM32F401RE的MCU支持MicroPython,手头恰好有一块.因为在众多支持MicroPython的STM32芯片中数他性 ...

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

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

  3. python stm32f401_NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台

    NUCLEO-F401RE(STM32F401RE)开发板跑Micropython平台 开发准备: 软件:DfuSeDemo.STM32 ST-LINK Utility.虚拟串口驱动.OpenIOE. ...

  4. 乐鑫Esp32学习之旅 23 安信可 esp32-a1s 音频开发板移植最新 esp-adf 音频框架,小试牛刀如何实现在线文字转语音播放。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  5. [2021]Linux下C语言qrencode二维码生成库的基本使用和ARM开发板移植

    文章目录 一.前言 二.准备所用到的环境以及版本信息 1.Ubuntu和内核版本 2.gcc和g++版本 3.交叉编译gcc和g++版本 4.开发板信息 三.开发环境编译&安装qrencode ...

  6. arm开发板移植 curl

    arm开发板移植 curl 一,下载curl源码 二,配置curl 三,移植到arm平台上 三,arm平台curl测试 一,下载curl源码 地址:https://curl.haxx.se/downl ...

  7. RK3399-NanoPC-T4-Android10开发板移植AAOS

    基于RK3399-NanoPC-T4-Android10开发板移植AAOS工作.碰到的问题,调试思路,和修改记录整理如下. 方案一,把目前RK3399-T4开发板对应的驱动(喇叭,相机,蓝牙,LCD等 ...

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

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

  9. 开发板移植RTOS操作系统,RTOS操作系统适配开发板整理大全

    文章目录 一.单片机/嵌入式有无操作系统的区别 二.操作系统时的分层架构图 三.移植FreeRTOS到小熊派开发板(STM32L431RC) 1. 硬件准备 2. 下载FreeRTOS源码 2.1. ...

最新文章

  1. html5画布显示不出来,运行后html5画布没出来
  2. c++之五谷杂粮---2
  3. TCGA免疫浸润评价数据库,TIMER 2.0 使用指南
  4. Linux下PortSentry的配置
  5. NLB+Cluster(一)
  6. java 程序流程控制知识点_JAVA基础知识点梳理三:流程控制语句
  7. mysql 大小端_go语言中大小端模式的个人理解
  8. python_爬虫_模块
  9. hdu2084数塔----DP入门
  10. regexp函数 mysql_mysql 五中的REGEXP函数_mysql
  11. 免登陆Oracle官网下载JDK
  12. java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(A
  13. 利用计算机视觉看懂病历,广东省中山市2019年九年级下册中考语文第二次模拟测试语文试题卷(二模含答案和解析).doc...
  14. 微信小程序 SEO 指南
  15. mysql执行后缀.sql_MySQL命令执行sql文件的两种方法
  16. Vision Transformer模型/论文详解
  17. 【广度优先搜索】leetcode 994. 腐烂的橘子
  18. linux 模块 掉线重拨,arm中实现pppd连接GPRS上网的相关笔记,含GPRS自动拨号脚本(真正的实时监控,断线自动重拨)...
  19. 新型肺炎疫情期间,有哪些服务免费开放?
  20. cbnet环境配置和运行中遇到的问题

热门文章

  1. windows10删除桌面右键菜单
  2. System Verilog 视频缩放图像缩放 vivado 仿真
  3. 建立一个Point类,包含数据成员x,y,实现需要的成员函数,并设计main函数完成测试
  4. 家用重度办公使用装机指南
  5. Selenium元素定位方法大全
  6. 60天引爆学习力总结
  7. 自己的价值=有你的世界-没有你的世界
  8. 如何导入outlook联系人到BlackBerry 10
  9. CUW MBA广州班开学第一天 精彩新开始
  10. 推荐十个精彩的Ubuntu鼠标主题