完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开始之前,首先要感谢一下TPYBoard技术交流群(157816561)-云之初晓网友的分享。 今天简单分享下如何将自己编写的一些Python脚本的类库添加到固件中,在使用时只需import调用,就像使用内置的pyb一样简单便捷;同时还有另外一个重要的功能,就是可以很好的保护源代码。比起生成mpy加密文件这种方式来说,显然添加到固件中会更加安全可靠。 搭建micropython编译环境 1.安装arm-none-eabi-gcc交叉编译工具和gcc编译器。 sudo apt-get install gcc-arm-none-eabi sudo apt-get install gcc 2.下载micropython源码包到本地,我下载到了home目录下。 sudo git clone --recursive MicroPython的源码结构 docs/ micropython的说明文档(restructuredText) drivers/ 一些外接设备的实现例程(eg:ds18b20,nrf24l01) examples/ micropython的使用例程 extmod/ C语言实现的模块 lib/ 各类芯片的lib文件 mpy-cross/ 自带的交叉编译器,可以将.py生成.mpy加密文件 ports/ 移植到各类MCU上的源码(eg:STM32,esp8266) tests/ 测试框架和Python脚本 tool+9s/ 工具 进入ports目录下你会发现,micropython根据不同的MCU运行平台进行了分类,比如esp8266就是运行在esp8266-WIFI模块上的micropython,stm32是运行在stm32上的,还有cc3200 。 然后进入stm32/boards目录下,里面又根据stm32不同的系列进行了划分。 添加自定义Py类库 3.回到stm32/目录下,将需要添加到固件中的Python脚本类库放到modules/目录下。编译之前,请确保程序运行无误。为了测试新建了一个test.py文件,简单写了两个函数。如下: import pyb def on(): pyb.LED(4).on() def off(): pyb.LED(4).off() 4.执行编译命令,等待编译完成。 sudo make BOARD=PYBV10 BOARD参数为stm32/boards/目录下相应的开发板名称。 本次教程用的是TPYBoardv102(蓝色)开发板,兼容PYBV10,所以选择PYBV10开发板编译。 若是TPYBoardv102(绿色)基础板,同样选择PYBV10。 若是TPYBoardv102(黑色)开发板,需选择PYBV11。 生成的固件在stm32/build-PYBV10/目录下的firmware.dfu和firmware.hex文件。 5.将dfu和hex文件拷贝到本地,进行烧写。 dfu文件的烧写教程,请参考:见评论 hex文件的烧写需要借助ST-LINK工具,请参考:见评论 6.烧写完毕后进行测试,在main.py文件输入以下内容: import pyb import test test.on() pyb.delay(1500) test.off() |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
316 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
834 浏览 2 评论
1996 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1099 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1525 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 12:40 , Processed in 1.295301 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号