完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1. 摘要
本文档主要介绍,在python环境下,如何开发嵌入式应用程序,以STM32H43板卡为例介绍。 从系统环境搭建,到编译,到用python实现硬件控制。可作为入门教程。 2. 准备工作 2.1 开发环境搭建 2.1.1 Win10自带linux系统 开发环境可以自己使用虚拟机然后安装ubuntu系统,而Win10系统自带有linux系统,只需要使能就可以使用,比较方便,所以我们以win10自带的linux子系统为例。 在控制面板中启用linux子系统,点击启用或关闭Windows功能。 勾选适用于linux的windows子系统,然后重启电脑 点击立即重新启动 重启后进入windows 10 应用商店,搜索Ubuntu,可以选择18.04或者20.02进行安装 下载安装完毕,点击启动 设置用户名和密码, 安装的默认路径是 C:Usershpp19AppDataLocalPackagesCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscLocalState ootfshome 路径不能修改,至此linux环境就好了,可以输入一些常用命令看看,如ls,cp, rm等命令。 Win10地下安装的linux子系统只支持命令行, 没有自己用虚拟机安装的功能全面,但是对于开发micropython 足够。 2.1.2 虚拟机安装 如果不想用windows10 安装的,想自己搭建也是可以,需要安装虚拟机和下载ubunut的iso镜像文件,进行安装,这种安装网上很多,我们就不详细列出了,推荐第一种安装。 2.1.3 依赖软件安装 Git安装,git用来获取软件包 使用克隆micropython的软件包,也可以去官网自己下载,拷贝到linux环境的home目录下。 使用git 克隆软件包 如果网络不好,要等一段时间,比较慢。也可以自己到官网下载。 2.1.4 Micropython 目录结构 目录结构比较重要,只有清除目录结构了,你才能移植到不同的板卡。 详细的目录结构介绍可以参考README.md 主要关注下目前micropython支持的ST开发板,和我们关系比较大的是H7系列,可以看到目前支持很多的ST芯片。 3. 交叉编译工具链 在终端输入sudo apt install gcc make 命令安装 gcc, make 安装完后可以查看下版本 输入 sudo apt-get install gcc-arm-none-eabi 安装针对ARM的编译器 如果你的交叉工具链安装下载比较慢的话,请按以下步骤修改,因为linux自带的软件源地址都是国外的,国内更新下载安装的话会比较慢,需要将列表更新为国内 将打开的文件内容全部删除掉,替换为以下镜像源 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse 修改完软件源后,更新软件列表和软件: sudo apt update sudo apt upgrade 如果对vim编辑器命令不熟悉,可以自己百度,或者直接在以下目录 C:Usershpp19AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState ootfsetcapt 下将sources.list文件替换为以下阿里云镜像源,这样速度会很快。 编译mpy-cross, mpy-cross是一个micropython的辅助工具,在编译过程中会用到,在micropython的源码根目录中输入命令make -C mpy-cross 至此交叉编译工具链就安装完毕,可以编译STM32的程序了。 4. 编译程序 在源码根目录下输入命令make -C ports/stm32 如果不指定BOARD,则默认编译的是ports/stm32下的PYBV10板子,而我们需要的是能在H743上跑,所以需要裁剪移植一个对H743的板子,查看下可以看到micropython目前支持的STM32板卡有F091, F401,F429,F446,F746,H743等, 复制NUCLEO_H743ZI命名为BODEBOARD 输入命令ls查看下已经有BODEBOARD文件夹和文件,进入查看下 主要有5个文件,而我们就需要修改这里面的文件 首先修改时钟为25000000,主要是修改stm32h7xx_hal_conf.h文件 修改mpconfigboard.h 将时钟修改为如下配置,可以复制我们之前IAR工程下的时钟配置。 修改其他管脚,这一节我们只以修改三个LED和UART1等管脚为例,在文档的下一个版本更新中,会更新所有用到的硬件管脚,还是在这个文件中继续修改对应的硬件管脚 保存退出 修改pins.csv文件 添加LED和UART1的管脚 保存退出。 因为我们是参照的NUCLEO_H743ZI,所以mpconfigboard.mk文件不用修改。至此修改完毕,可以编译,在micropython根目录下输入命令 make -C ports/stm32 BOARD=BODEBOARD 等待编译完成。 可以看到生成了.hex和.dfu固件,任选一种下载入H743板子,这样板卡里就有了python解析器,可以识别python语言 编译好的固件怎么样复制到windows主机呢,当然你可以直接去生成的目录底下拷贝,在win10 的linux子系统中默认已经将windows分区挂载好了,我们可以在/mnt目录下看到 这样我们就可以直接使用命令cp拷贝到windows了,当然如果你不习惯命令行操作,可以安装midinight commander 软件,可以方便的管理文件,输入命令sudo apt install mc 进行安装,安装完后,输入mc可以直接打开软件。 不管用那种方法,将Hex文件下载到硬件板卡,下载完毕后,给板子重新上电,可以看到出现一个PYBFLASH类似U盘的盘符,打开里面有boot.py main.py 等四个文件,我们最后的应用程序直接写在main.py就可以运行了。 5. 测试 我们先来演示使用putty来控制板子上的LED灯,打开putty,配置波特率和串口号, 导入LED库,就可以控制LED了 可以观察H743的板子三个LED灯依次点亮,通过Putty可以控制硬件就完成了,那么如何让板子上电就三个LED灯点亮,而不需要通过Putty控制呢。? 这就要编辑我们前面提到的main.py文件,使用任何文本编辑器打开,写入python代码,保存退出,就可以运行了。 通过以上代码就实现了LED的点亮控制,实现用python控制单片机。至此就可以用python编写很多好玩的东西在单片机上跑了。 |
|
|
|
只有小组成员才能发言,加入小组>>
2549 浏览 0 评论
1147浏览 2评论
746浏览 1评论
499浏览 0评论
265浏览 0评论
428浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:36 , Processed in 1.367462 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号