在最新的 MicroPython 源码中,已经加入了STM32L476DISC开发板,但是还没有NUCLEO-L476RG开发板。而我只有NUCLEO-L476RG开发板,要在NUCLEO-L476RG开发板上跑MicroPython,只有自己移植一下了。好在两个开发板使用的MCU是一样的,所以移植起来并不困难,主要就是修改一些参数配置,将LED、按键、串口等指定为开发板使用的GPIO。首先下载MicroPython源码,使用zip方式或者git方式都可以。推荐使用git方式,它更适合深入学习研究。

此外还需要安装gcc-arm-none-eabi编译器,MicroPython的STM32需要使用这个编译器才能进行编译。

进入源码的stmhal目录,用记事本或者其他编辑器修改makefile文件,将下面一行中编译器的路径改为实际的目录。注意一定要使用右斜杠。

CROSS_COMPILE = e:/gcc-arm/bin/arm-none-eabi-在进入stmhal/board目录,新建一个NUCLEO_L476RG目录,然后将STM32L476DISC目录下的所以文件复制过来。

打开mpconfigboard.h文件,修改下面的内容:#define MICROPY_HW_BOARD_NAME       "NUCLEO-L476RG"

#define MICROPY_HW_MCU_NAME         "STM32L476"

#define MICROPY_HW_HAS_SWITCH       (1)

#define MICROPY_HW_HAS_FLASH        (1)

#define MICROPY_HW_HAS_SDCARD       (0)

#define MICROPY_HW_HAS_MMA7660      (0)

#define MICROPY_HW_HAS_LIS3DSH      (0)

#define MICROPY_HW_HAS_LCD          (0)

#define MICROPY_HW_ENABLE_RNG       (1)

#define MICROPY_HW_ENABLE_RTC       (1)

#define MICROPY_HW_ENABLE_TIMER     (1)

#define MICROPY_HW_ENABLE_SERVO     (0)

#define MICROPY_HW_ENABLE_DAC       (0)

#define MICROPY_HW_ENABLE_CAN       (0)

// HSI is 4MHz

#define MICROPY_HW_CLK_PLLM (1)

#define MICROPY_HW_CLK_PLLN (40)

#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV7)

#define MICROPY_HW_CLK_PLLR (RCC_PLLR_DIV2)

#define MICROPY_HW_CLK_PLLQ (RCC_PLLQ_DIV2)

#define MICROPY_HW_FLASH_LATENCY    FLASH_LATENCY_4

// USART config

#define MICROPY_HW_UART2_PORT (GPIOA)

#define MICROPY_HW_UART2_PINS (GPIO_PIN_2 | GPIO_PIN_3)

// I2C busses

#define MICROPY_HW_I2C1_SCL (pin_B8)

#define MICROPY_HW_I2C1_SDA (pin_B9)

// We use an array of baudrates and corresponding TIMINGR values.

//

// The value 0x90112626 was obtained from the DISCOVERY_I2C1_TIMING constant

// defined in the STM32L4Cube file Drivers/BSP/STM32L476G-Discovery/stm32l476g_discovery.h

#define MICROPY_HW_I2C_BAUDRATE_TIMING  {{100000, 0x90112626}}

#define MICROPY_HW_I2C_BAUDRATE_DEFAULT 100000

#define MICROPY_HW_I2C_BAUDRATE_MAX     100000

// SPI busses

#define MICROPY_HW_SPI1_NSS     (pin_A15)

#define MICROPY_HW_SPI1_SCK     (pin_A5)

#define MICROPY_HW_SPI1_MISO    (pin_A6)

#define MICROPY_HW_SPI1_MOSI    (pin_A7)

// USRSW is pulled low. Pressing the button makes the input go high.

#define MICROPY_HW_USRSW_PIN        (pin_C13)

#define MICROPY_HW_USRSW_PULL       (GPIO_NOPULL)

#define MICROPY_HW_USRSW_EXTI_MODE  (GPIO_MODE_IT_FALLING)

#define MICROPY_HW_USRSW_PRESSED    (0)

// LEDs

#define MICROPY_HW_LED1             (pin_A5) // red

#define MICROPY_HW_LED_OTYPE        (GPIO_MODE_OUTPUT_PP)

#define MICROPY_HW_LED_ON(pin)      (pin->gpio->BSRR = pin->pin_mask

#define MICROPY_HW_LED_OFF(pin)     (pin->gpio->BSRR = pin->pin_mask<<16)

// USB config

// #define MICROPY_HW_USB_OTG_ID_PIN (pin_C12) // This is not the official ID Pin which should be PA10>

修改后,在stmhal目录中输入命令编译源码

make BOARD=NUCLEO_L476RG编译后就得到了需要的hex文件,将文件下载到开发板就可以玩MicroPython了。

因为STM32L476的Micropython版本还在修改中,现在还存在一些问题,目前已知问题有:STLink的串口无法发送控制命令

串口设置波特率时会提示超出误差范围,但实际已经设置成功。

DAC和ADC功能暂时不能使用

其他最好使用macroUSB转接板将USBOTG引出来,因为只有这样才能使用内置的PYFLASH磁盘。

关于源码编译,我将另外开帖详细介绍。

micropython移植教程_移植MicroPython到NUCLEO_L476RG开发板相关推荐

  1. 移植ubuntu14.04根文件系统至beaglebone开发板探索

    移植ubuntu14.04根文件系统至BeagleBone开发板探索 移植背景 我是一个linux小白,然而由于项目需要,一个师兄为机器人的控制定制了一个开发板,基于beaglebone.由于此开发板 ...

  2. 移植中文TTS(ekho)到ARM linux开发板

    移植ekho到arm linux,实现将中文转换为.wav格式的语音文件. 移植开源库libsndfile到arm linux开发板 1. 下载压缩源码包libsndfile-1.0.28.tar.g ...

  3. mt7601u linux驱动编译,移植MT7601U AP Linux 驱动至Orangepi-PC2开发板

    简单一下记录移植MT7601U AP Linux 驱动至Orangepi-PC2开发板的过程. 二  环境描述 1.Orangpi-PC2开发板(Linux Orangepi 3.10.65 #12 ...

  4. STM32MP1系列教程连载-华清远见FS-MP1A开发板使用

    STM32MP1系列教程连载-华清远见FS-MP1A开发板使用 1.1 FS_MP1A硬件资源介绍 FS-MP1A采用STM32MP157A处理器.STM32MP157A是基于Cortex-A7 32 ...

  5. micropython esp8266教程_(一)ESP8266/nodemcu如何使用MicroPython进行开发

    简介 大家都知道ESP8266(nodemcu)可以使用arduino的语法(C)进行开发,也有些小伙伴可能也知道可以使用lua语言进行开发的.但是现在我们也可以使用python来开发esp8266( ...

  6. micropython入门教程-我的MicroPython入门之路

    我刚工作的时候,部门花大价钱买了一套基于FPGA的实时仿真系统,编译的时候看到.py的文件生成让我很感兴趣,从此开始接触python. 后来,我利用空闲时间开始学习python,近几年正是python ...

  7. micropython入门教程-如何学习MicroPython MicroPython入门知识

    对于深入研究实时嵌入式应用程序之前,对MicroPython感兴趣的开发人员必须先选择支持开发套件或微处理器.开发人员寻找支持的开发工具包的最佳位置是签出MicroPython Github Boar ...

  8. micropython esp8266教程_ESP8266 刷写MicroPython固件

    固件有很多得种类 这个是下载得页面 官方支持ESP8266,亲生的就是好高度集成 ESP8266是业内集成度最高的Wi-Fi芯片,最小封装尺寸仅为5mmx5mm.ESP8266高度集成了天线开关.射频 ...

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

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

最新文章

  1. raspberry pi_修改磁盘映像以创建基于Raspberry Pi的homelab
  2. Glassfish3 安装后登录时提示:Secure Admin must be enabled to access the DAS remotely
  3. python数据结构5 - 排序与搜索
  4. 大专计算机论文什么方向,大专计算机论文
  5. jar中没有主清单属性
  6. 金三银四,教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了
  7. SQL中去重的三种方式
  8. 路由器配置深入浅出—路由器接口PPP协议封装及PAP和CHAP验证配置
  9. IP输出不足,端游手游化时代的单一手游企业如何破局?
  10. 【UVM基础】虚序列器与虚序列(virtual sequencer与virtual sequence)快速上手指南
  11. NR-PRACH:接入场景和接入流程
  12. 001定位技术和算法有哪些?
  13. python怎么解压rar文件_Python解压 rar、zip、tar文件的方法
  14. 飞机大战代码(高仿),完美复原原游戏,好玩到停不下来
  15. 操作系统期末总复习——绝地求生版
  16. 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇——02
  17. sweetalert2中ajax用法,SweetAlert2例子
  18. Android APP之间共享SharedPreference
  19. 华为补偿10亿鼓励员工辞职 以规避劳动合同法
  20. java热力图分布_热力图-自有数据图层-示例中心-JS API 示例 | 高德地图API

热门文章

  1. [空间记录]嚯哈哈,空间访问量突破一万,纪念一下.
  2. esp8266点灯LCD12864心知天气+农历+空气质量ArduinoJson6
  3. 树莓派计算器c语言,树莓派与Python实验9——Tkinter计算器实验
  4. REINFORCEMENT LEARNING USING QUANTUM BOLTZMANN MACHINES利用量子波兹曼机进行强化学习
  5. ACurveTracer软件-可兼容多种仪器的测量软件
  6. 中日韩文字Unicode表
  7. 【技术分享】Windows10下安装Nvidia显卡驱动及cuda和cudnn
  8. 专门卖游戏辅助的平台_各大游戏售卖平台
  9. 【码云学习02】Git基本命令
  10. Java POI导出(图片,文字,表格)word文档