news 2026/9/15 15:02:40

[APM32F4] 在 APM32F427 上运行 Python

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[APM32F4] 在 APM32F427 上运行 Python

0. 前言

APM32F427 是极海半导体推出的一款工业级高性能拓展型MCU,该系列最高工作主频240MHz,最高支持1MB Flash和448KB SRAM存储。

这么好的 MCU,我们当然要搞一些事情:把 Python 跑起来。目前有两个相对成熟的项目,可以让 MCU 运行 Python: MicroPython 和 PikaPython。

MicroPython 官网的介绍:

MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.


PikaPython 官网的介绍:

跨平台的超轻量级嵌入式 Python 引擎。


PikaPython 应该是国人开始的项目,我们今天就介绍 PikaPython 在 APM32F427 上的移植,如果以后有时间也会介绍一下 MicroPython ~ 话不多说,这就开始。

PikaPython 中文文档非常完整,地址在这里:http://pikapython.com/doc/


1. 准备模板工程
移植 PikaPython 最基础只需要一个支持 printf 的工程就可以。

我使用的开发板是 APM32F427-Tiny,准备的工程也只是初始化了开发板上与板载仿真器连接的 UASRT6。参考 board_apm32f427z_tiny.c 文件,这个文件也完成了 stdout/stdin 的输出输出重定向,参考下图中的注释:



需要注意的是 PikaPython 需要使用动态内存,所以项目的堆(heap)需要足够大。我的项目设置的堆大小是 16KiB,也就是 0x4000。参考上图蓝色框部分~

2. 生成 PikaPython 所需文件

第一步,获取 PikaPython 包管理器。

这个包管理器是一个可执行文件。由 PikaPython 官方开发,用于模块管理,可以提供内核、模块下载、模块发布、内核、模块版本切换功能。可以点击 https://gitee.com/Lyon1998/pikapython/attach_files/1467185/download 直接下载,得到一个 pikaPackage 的可执行文件。复制这个文件到项目中 pikapython 文件夹。这个文件夹是自己创建的,用于保存 PikaPython 相关内容。

第二步,安装必要的模块。
在 pikapython 文件夹中,创建一个 **requestment.txt** 的文本文件,内容:

复制
  1. pikascript-core
  2. PikaStdLib


然后双击运行包管理器。也可以命令行窗口执行这个命令,这样就能看到程序执行的输出,类似:



命令行下看到 Succeed: Update OK ! 字样,说明操作成功了。pikapython 文件夹会多出很多文件:



如果打开 requestment.txt,就能看到文件内容相较于之前的有所变化:

复制
  1. pikascript-core==v1.13.4
  2. PikaStdLib==v1.13.4


增加了相应的版本号,这个是包管理器操作的。在生成的 pikascript- 开始的3个目录下,是生成的 .c/.h 文件,需要全部加入 keil 工程中。这些就是 PikaPython 的代码了。

第三步,加入项目,启动编译

回到 keil 中,把上面三个生成的文件夹下的全部 .c 文件加入项目:


在工程选项中,把这3个目录加入 include 搜索路径:



修改 main.c 把相关功能加入程序:

复制
  1. #include"board.h"
  2. #include"apm32f427xx.h"
  3. #include"pikaScript.h"
  4. #include<stdio.h>
  5. //
  6. intmain()
  7. {
  8. //
  9. SystemCoreClockUpdate();
  10. // Systick Config
  11. if(SysTick_Config(SystemCoreClock /1000))
  12. {
  13. while(1)
  14. {
  15. ;
  16. }
  17. }
  18. board_init();
  19. printf("\n\nHello world!\n\n");
  20. PikaObj* pikaMain = pikaScriptInit();
  21. pikaScriptShell(pikaMain);
  22. while(1)
  23. {
  24. ms_delay(5);
  25. }
  26. return0;
  27. }


编译一下,应该不会有错误,而是一些警告:




第四步,下载运行

把开发板连接到 PC,下载程序。

使用 Putty 或者你顺手的其他工具打开串口连接到开发板。之后复位一下,可以进行类似下面的操作:



是的,和在 PC 上运行 Python 程序一样的结果。

当然,这只是个开始,我们下一步还可以移植更多的驱动,比如 GPIO,UART并集成到 PikaPython 中。

最后,人生苦短,我用Python~

0. 前言

APM32F427 是极海半导体推出的一款工业级高性能拓展型MCU,该系列最高工作主频240MHz,最高支持1MB Flash和448KB SRAM存储。

这么好的 MCU,我们当然要搞一些事情:把 Python 跑起来。目前有两个相对成熟的项目,可以让 MCU 运行 Python: MicroPython 和 PikaPython。

MicroPython 官网的介绍:

MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.


PikaPython 官网的介绍:

跨平台的超轻量级嵌入式 Python 引擎。


PikaPython 应该是国人开始的项目,我们今天就介绍 PikaPython 在 APM32F427 上的移植,如果以后有时间也会介绍一下 MicroPython ~ 话不多说,这就开始。

PikaPython 中文文档非常完整,地址在这里:http://pikapython.com/doc/


1. 准备模板工程
移植 PikaPython 最基础只需要一个支持 printf 的工程就可以。

我使用的开发板是 APM32F427-Tiny,准备的工程也只是初始化了开发板上与板载仿真器连接的 UASRT6。参考 board_apm32f427z_tiny.c 文件,这个文件也完成了 stdout/stdin 的输出输出重定向,参考下图中的注释:



需要注意的是 PikaPython 需要使用动态内存,所以项目的堆(heap)需要足够大。我的项目设置的堆大小是 16KiB,也就是 0x4000。参考上图蓝色框部分~

2. 生成 PikaPython 所需文件

第一步,获取 PikaPython 包管理器。

这个包管理器是一个可执行文件。由 PikaPython 官方开发,用于模块管理,可以提供内核、模块下载、模块发布、内核、模块版本切换功能。可以点击 https://gitee.com/Lyon1998/pikapython/attach_files/1467185/download 直接下载,得到一个 pikaPackage 的可执行文件。复制这个文件到项目中 pikapython 文件夹。这个文件夹是自己创建的,用于保存 PikaPython 相关内容。

第二步,安装必要的模块。
在 pikapython 文件夹中,创建一个 **requestment.txt** 的文本文件,内容:

复制
  1. pikascript-core
  2. PikaStdLib


然后双击运行包管理器。也可以命令行窗口执行这个命令,这样就能看到程序执行的输出,类似:



命令行下看到 Succeed: Update OK ! 字样,说明操作成功了。pikapython 文件夹会多出很多文件:



如果打开 requestment.txt,就能看到文件内容相较于之前的有所变化:

复制
  1. pikascript-core==v1.13.4
  2. PikaStdLib==v1.13.4


增加了相应的版本号,这个是包管理器操作的。在生成的 pikascript- 开始的3个目录下,是生成的 .c/.h 文件,需要全部加入 keil 工程中。这些就是 PikaPython 的代码了。

第三步,加入项目,启动编译

回到 keil 中,把上面三个生成的文件夹下的全部 .c 文件加入项目:


在工程选项中,把这3个目录加入 include 搜索路径:



修改 main.c 把相关功能加入程序:

复制
  1. #include"board.h"
  2. #include"apm32f427xx.h"
  3. #include"pikaScript.h"
  4. #include<stdio.h>
  5. //
  6. intmain()
  7. {
  8. //
  9. SystemCoreClockUpdate();
  10. // Systick Config
  11. if(SysTick_Config(SystemCoreClock /1000))
  12. {
  13. while(1)
  14. {
  15. ;
  16. }
  17. }
  18. board_init();
  19. printf("\n\nHello world!\n\n");
  20. PikaObj* pikaMain = pikaScriptInit();
  21. pikaScriptShell(pikaMain);
  22. while(1)
  23. {
  24. ms_delay(5);
  25. }
  26. return0;
  27. }


编译一下,应该不会有错误,而是一些警告:




第四步,下载运行

把开发板连接到 PC,下载程序。

使用 Putty 或者你顺手的其他工具打开串口连接到开发板。之后复位一下,可以进行类似下面的操作:



是的,和在 PC 上运行 Python 程序一样的结果。

当然,这只是个开始,我们下一步还可以移植更多的驱动,比如 GPIO,UART并集成到 PikaPython 中。

最后,人生苦短,我用Python~


---------------------
作者:wangqy_ic
链接:https://bbs.21ic.com/icview-3501089-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 21:14:06

AI少儿英语APP的开发流程

开发一款面向2026年市场的AI少儿英语APP&#xff0c;核心逻辑已经从简单的“点读”进化到了“实时互动”与“个性化情感陪伴”。以下是该项目的核心开发维度&#xff0c;涵盖了功能设计、技术选型及用户体验。一、 核心功能模块1. 24/7 虚拟AI外教利用数字人技术&#xff08;Di…

作者头像 李华
网站建设 2026/9/9 22:05:40

【大模型-Olllama】

大模型-Olllama■■ Ollama本地部署大模型■■■■■ ■ Ollama本地部署大模型 ■ ■ ■ ■

作者头像 李华
网站建设 2026/9/9 16:26:45

20个python新颖毕业设计题目

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多的人 文末下方有作者联系方式一、入门创意&#xff08;适合新手练手&#xff0c;易实现&#xff09;个性化天气提醒助手功能&#xff…

作者头像 李华