购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4.2 GPIO输入输出操作

在图1.4.1所示的图片中,有5个可以操作的LED灯,我们首先运行官方提供的一个MicroPython关于走马灯的LED测试程序。在命令行输入“python /data/python-apps/driver/led/main.py”(如图1.4.9所示)。

● 图1.4.9 led走马灯程序测试

如果程序执行成功,则不仅可以看到如图1.4.9所示的输出,也可以看到开发板上5个LED灯开始依次闪烁。

阿里云HaaS系列的Python轻应用,官方提供了GPIO驱动库,支持如下几个主要函数:

1)GPIO.open(type):打开GPIO对象,type =为对象类型,在board.json文件中定义。

2)GPIO.write(value):设置GPIO状态(GPIO输出模式有效),value =要写入的数据,一般设置低电平为0或高电平为1。

3)GPIO.read():返回GPIO的状态,一般为0或1。

4)GPIO.close():关闭GPIO对象,返回0成功,非0失败。

5)GPIO.enableIrq(cb)激活GPIO对象的中断事件cb=事件函数

6)GPIO.disableIrq(cb):禁用GPIO对象的中断事件cb=事件函数。

7)GPIO.clearIrq(cb):清除GPIO对象的中断事件cb=事件函数。

在GPIO操作之前,需要在编译固件包的时候,配置hardware/chip/haas1000/prebuild/data/python-apps/driver/board.json文件,比如GPIO相关的配置如下:

其中led1、led2、led3、led4、led5分别对应图1.4.1所示的5个LED灯,其对应的MCU上的pin脚号由port指定,并且这5个led对象也是GPIO.open要打开的对象。比如LED走马灯的程序如下:

图1.4.1所示的配网键是一个功能按键,其对应的pin脚号为26,在board.json文件中我们增加如下的定义声明:

通过GPIO.open打开该对象,通过GPIO.read()即可读取button当前状态(抬起还是按下)。相关代码如下:

程序部署到设备执行后,按下或抬起功能按键,可观察按键的输出状态是否同步变化(如图1.4.10所示)。

针对button输入,我们还有中断回调方式,不需要循环判断button的状态,不过目前仅能捕捉到按键这个事件,不支持按键按下和抬起。相关程序如下:

● 图1.4.10 按键输入

注意

如何执行用户编写的Python程序,HaaS100如何开机自运行?

1)HaaS100支持SD卡操作,可以把编写完毕的Python程序复制到SD卡,输入如下指令即可执行python /sdcard/main.py。如果定义了额外的接口,需要把board.json文件复制到SD卡根目录。

2)HaaS100开机启动的时候,会自动运行SD卡根目录中名称为main.py的程序。

3)阿里发布了amp-python的Visual Studio Code插件,可以直接编写和部署Python轻应用(和固件刻录方式类似),不过目前还不支持在线调试。 cH1DftY1Tu5j5MMKO5g9me9Qb87gqbltTYUJ/IPrZWB6RsS/agRcFweoAnTF7RNQ

点击中间区域
呼出菜单
上一章
目录
下一章
×