上一篇《正点原子阿波罗STM32H743移植触摸驱动到Micropython》,我们成功将显示屏和触摸屏移植到Micropython上,接下来,我们将介绍一下将PCF8574(IO扩展芯片)移植到Micropython中。
1.正点原子阿波罗STM32H743开发板介绍
正点原子阿波罗STM32H743开发板是一款高性能嵌入式开发平台,基于STM32H743微控制器,主频480MHz,拥有1MB SRAM和2MB Flash。开发板采用核心板+底板设计,支持多种外设,如RGB LCD、九轴传感器、音频编解码、以太网、USB接口等。
2.RT-Thread介绍
RT-Thread是一款开源的嵌入式实时多线程操作系统,主要采用 C 语言编写,具有良好的可移植性和可裁剪性。它支持多任务调度,并提供线程管理、内存管理、中断管理等功能。RT-Thread 包含完整版和 Nano 版,其中Nano 版仅需 3KB Flash 和 1.2KB RAM,非常适合资源受限的微控制器。
3.PCF8574介绍
PCF8574是NXP(原Philips)推出的一款I/O扩展芯片,通过I²C总线为微控制器提供8位通用并行输入/输出端口(GPIO),能够有效解决主控 IO 资源不足的问题。该芯片的 I²C 地址可以通过 A0 - A2 引脚进行配置(范围为 0x20 - 0x27),并且支持标准(100kHz)和快速(400kHz)通信模式。
4.测试PCF8574
参考《正点原子STM32H743借助RT-Thread移植Micropython》添加pcf8574的软件包,然后进入配置项,启用pcf8574的例程:
完成上述操作后,重新编译项目,生成新的固件文件。将新固件烧录到开发板后,在msh中输入pcf8574_sample,运行例程。正常情况下,就会听到蜂鸣器响了一声。
5.移植到micropython
在将 PCF8574 移植到 Micropython 的过程中,需要对以下三个文件进行修改:
packages\micropython - latest\port\genhdr下的qstrdefs.generated.h
packages\micropython - latest\port下的mpconfigport.h
applications下的main.c
由于涉及的修改较多,这里不再一一详细展开。我已经将修改后的文件上传至 Gitee(https://gitee.com/py2012/STM32H743_lcd_touch),可以直接下载并替换对应的文件。
完成文件替换后,重新编译项目,生成新的固件文件。
6.在MicroPython上测试PCF8574
重新烧录固件后,就可以开始测试PCF8574的各项功能了,包括引脚输入输出功能(这里只有蜂鸣器可以测试)。
参考代码如下:
import pcf8574,utimewhile True: pcf8574.value(0,0) utime.sleep(1) pcf8574.value(0,1) utime.sleep(1)
领取专属 10元无门槛券
私享最新 技术干货