基于LPC55S69移植Micropython,并实现GPIO与串口通信

目录

    • LPC55S69及其开发环境简介
    • Micropython移植流程记录
      • RT-Thread及MPY移植
      • GPIO及串口通信

LPC55S69及其开发环境简介

有关LPC55S69开发板的介绍参见:

硬禾学堂Funpack 11期
恩智浦官网

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第1张图片
板卡资源丰富,包含4位SDIO,及速度传感器,音频编解码,MikroElectronika Click拓展槽等。开发环境支持恩智浦的MCUXpresso、或通过生成LPC55S69的SDK在Keil5、IAR等环境中开发。

Micropython移植流程记录

有关Micropython的简介及开发流程可参考:

Micropython官网
RT-Thread文档中心

RT-Thread及MPY移植

在LPC55S69上移植Micropython,首先需要移植RT-Thread,再在此基础上完成Micropython的移植。RTT参见RT-Thread Github官方,其主要步骤及BSP(板级支持包)资源均配备。此外,需要配置RT-Thread Env。

⚠️ 最好git clone 最新的RTT,以确保更多的bug得到了修复。

配置好Env后,在git clone后RTT所在文件夹下,打开ConEmu,如下图。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第2张图片
输入menuconfigHardware Drivers ConfigOn-chip Peripheral Drivers,使能GPIO,UART0与UART2。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第3张图片
使能后退回上级菜单,在RT-Thread online packageslanguage packagesMicropython,使能并进入设置,“Heap size"改为20480,版本选用"latest”。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第4张图片
进入Hardware Module使能"machine uart"。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第5张图片
最后在RT-Thread Components,改变"stack size"为8192,最后Exit退出配置。

在ConEmu中,输入"pkgs --update"将将软件包拉取到本地。

返回文件夹,在".\bsp\lpc55sxx\lpc55s69_nxp_evk\packages\micropython-latest"下有一"SConscript"文件,对此进行修改,注意30行改为"-fgnu"。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第6张图片
改完后,在ConEmu中输入"scons --target=mdk5",生成Keil工程。根据Micropython用户手册,对main函数作出修改,在main线程中启动MicroPython,之后即可烧写到板卡中。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第7张图片

GPIO及串口通信

结合LPC55S69原理图及所生成Keil工程中drv_pin.c,板卡上LED_BLUE为Pin37,LED_RED为Pin39,LED_GREEN为Pin40,按键为Pin42。注意,板卡LPC-LINK2 占用了UART0,因此使用UART2做串口输入输出。

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第8张图片
使用vscode中的RT-Thread MicroPython插件进行mpy开发。

编写了一个简单的用按键控制LED和串口输出的程序,为了LED灯显示清晰没有整些花里胡哨的,该程序实现当KEY按下时,LED_BLUE与LED_RED翻转,串口每1秒打印语句。效果如下:

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第9张图片
基于LPC55S69移植Micropython,并实现GPIO与串口通信_第10张图片

基于LPC55S69移植Micropython,并实现GPIO与串口通信_第11张图片
代码见资源链接,开源。

*BUG:目前我的板卡不知为何无法实现从UART2串口输入字符。

你可能感兴趣的:(micropython,LPC55S69,nxp,RT-Thread,Keil)