2、合宙 724UG 模块GPIO学习

一、需要准备

官方API手册
硬件设计手册
724UG开发板原理图

二、GPIO配置讲解
打开官方API手册找到对应的家接口文档,里面提供了很多api接口根据自己需求观看,我看的是4G的luat API接口
找到pins API接口函数里面有关于GPIO的配置
pins.setup函数有三个参数,根据GPIO配置输入与输出,
1、输出模式
假如我们要将GPIO 4设置为输出,只需要
定义一个变量
local setGPIO=pins.setup(4,0)–设置IO4为输出,电平为低
也可以写成local setGPIO=pins.setup(pio.P0_4,0)

可以通过setGPIO()设置IO4的高低电平
如setGPIO(1),设置GPIO4为高,setGPIO(0)为低
2、输入模式
假设设置GPIO7为输入模式,只需要
随意定义一个变量,如
local getGPIO7=pins.setup(7)–配置GPIO7,输入模式,
可以通过getGPIO7()获取IO的电平为0还是1

3、中断模式
假设设置GPIO7为中断模式,只需要
随意定义一个变量,如
local getGPIO7=pins.setup(7,interrupt_re)–配置GPIO7,输入模式,interrupt_re为中断处理函数,中断处理函数随便写
如下

function interrupt_re(msg)if msg==cpu.INT_GPIO_POSEDGE then--如果当前上升沿中断执行IF语句里的else--下降沿中断执行else里的end
end
local getGPio=pins.setup(7,interrupt_re)

也可以通过getGPIO7()获取IO的电平为0还是1
三、代码示例

3.1输出模式演示

首先查看724UG 开发板的原理图
在使用GPIO时要用到官方给的电压管理接口API,设置IO电压
有些GPIO需要打开对应的ldo电压域才能正常工作,电压域和对应的GPIO关系如下
pmd.ldoset(x,pmd.LDO_VSIM2) – GPIO 29、30、31 --目前core版本还不支持
pmd.ldoset(x,pmd.LDO_VLCD) – GPIO 0、1、2、3、4、6 --目前core版本,x还控制不了不同等级的电压,都是1.8V
pmd.ldoset(x,pmd.LDO_VMMC) – GPIO 24、25、26、27、28
x=0时:关闭LDO
x=1时:LDO输出1.716V
x=2时:LDO输出1.828V
x=3时:LDO输出1.939V
x=4时:LDO输出2.051V
x=5时:LDO输出2.162V
x=6时:LDO输出2.271V
x=7时:LDO输出2.375V
x=8时:LDO输出2.493V
x=9时:LDO输出2.607V
x=10时:LDO输出2.719V
x=11时:LDO输出2.831V
x=12时:LDO输出2.942V
x=13时:LDO输出3.054V
x=14时:LDO输出3.165V
x=15时:LDO输出3.177V

我们来控制IO1和IO4来,控制724 开发板上的绿灯和蓝灯
让他们交替闪烁,绿灯亮1s后,蓝灯亮1s,由上可知电压设置为pmd.ldoset(1, pmd.LDO_VLCD)就行了
代码如下

--必须在这个位置定义PROJECT和VERSION变量
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
PROJECT = "GPIO_OUT"
VERSION = "0.0.1"
require "sys"
--加载日志功能模块,并且设置日志输出等级
--如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
require "log"
require "pins"
LOG_LEVEL = log.LOGLEVEL_TRACEpmd.ldoset(1, pmd.LDO_VLCD)--电压域local blue_flag,green_flag=0,1
local function task1()local setGpio4= pins.setup(4, 0)--设置GPIO 4为输出,默认低电平local setGpio1= pins.setup(1, 0)--设置GPIO 1为输出,默认低电平while true doblue_flag= blue_flag==0 and 1 or 0--三目运算符 if(flag==0)then flag=1 else flag=0green_flag=green_flag==1 and 0 or 1setGpio4(blue_flag) --设置GPIO电平setGpio1(green_flag)print("IO4:",blue_flag,"IO1",green_flag)--打印IO的电平sys.wait(1000)--sys.wait(ms)任务延时函数end
end
--启动系统框架,下面不要随便动
sys.taskInit(task1)--创建一个任务
sys.init(0, 0)
sys.run()


串口显示为如上

3.2 输入模式

就用GPIO7了,
通过设置GPIO7为输出,检查GPIO7电平变换控制两个LED,如果为高电平蓝灯亮,低电平绿灯亮
代码如下

--必须在这个位置定义PROJECT和VERSION变量
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
PROJECT = "GPIO_OUT"
VERSION = "0.0.1"
require "sys"
--加载日志功能模块,并且设置日志输出等级
--如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
require "log"
require "pins"
require "bit"
LOG_LEVEL = log.LOGLEVEL_TRACEpmd.ldoset(1, pmd.LDO_VLCD)
local setGpio4 = pins.setup(4, 0)--设置GPIO 4为输出,默认低电平
local setGpio1 = pins.setup(1, 0)--设置GPIO 1为输出,默认低电平
local getGpio7 = pins.setup(7)--默认下拉local function task1()while true doif (getGpio7() == 1) thensetGpio4(1)--设置GPIO4 为1setGpio1(0)--设置IO1 为0elsesetGpio1(1)--设置GPIO1 为1setGpio4(0)--设置GPIO4 为0endprint("IO7:", getGpio7())--打印IO的电平sys.wait(500)--延时500msend
end--启动系统框架,下面不要随便动
sys.taskInit(task1)--创建一个任务
sys.init(0, 0)
sys.run()

此时GPIO7为0,绿灯亮

将GPIO7接到4V,此时蓝灯亮

串口显示如下
3.3中断模式

通过设置GPIO7为中断模式,通过中断处理函数控制两个LED,如果为上升沿中断蓝灯亮,下降沿中断绿灯亮
代码如下

--必须在这个位置定义PROJECT和VERSION变量
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
PROJECT = "GPIO_OUT"
VERSION = "0.0.1"
require "sys"
--加载日志功能模块,并且设置日志输出等级
--如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
require "log"
require "pins"
require "bit"
LOG_LEVEL = log.LOGLEVEL_TRACEpmd.ldoset(1, pmd.LDO_VLCD)local setGpio4 = pins.setup(4, 0)--设置GPIO 4为输出,默认低电平
local setGpio1 = pins.setup(1, 1)--设置GPIO 1为输出,默认低电平
function Interrupt_re(msg)if (msg == cpu.INT_GPIO_POSEDGE) thensetGpio4(1)--设置GPIO4 为1setGpio1(0)--设置IO1 为0print("BLUE", "ON", "GREEN", "OFF")elsesetGpio1(1)--设置GPIO1 为1setGpio4(0)--设置GPIO4 为0print("BLUE", "OFF", "GREEN", "ON")end
endlocal function task1()local getGpio7 = pins.setup(7, Interrupt_re)--设置GPIO7为中断模式
end
--启动系统框架,下面不要随便动
sys.taskInit(task1)--创建一个任务
sys.init(0, 0)
sys.run()

效果串口测试

合宙 724UG 模块GPIO学习相关推荐

  1. 合宙 724UG 模块学习

    1.合宙 4G模块724UG学习:luat 开发环境搭建 一.724UG模块windows环境搭建 1.环境搭建材料 均为合宙官网下载 lua编程软件官方建议vscode 点击下载 [驱动程序] Wi ...

  2. X、合宙Air模块Luat开发:全网首发,通过iic直接驱动OLED,720Sl开始有显时代

    目录 点击这里查看所有博文   本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持).   先不管支不支 ...

  3. 8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用

    目录 点击这里查看所有博文 本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持). 先不管支不支持,如果 ...

  4. 1.合宙Air32F103调试GPIO

    一.简介 合宙Air32F103开发板板载Air32F103CBT6,兼容STM32F103C8T6,价格太香了,首发9.9包邮.自带DAPLink固件,可以直接当DAPLink使用. 官方详细介绍( ...

  5. 上海合宙Luat 模块 Air724开发板 入门指南(1)

    Air724 是上海合宙物联网于2020年3月下旬发布的一款基于UIS8910DM芯片组的物联网通讯模块. 模块通讯性能优越,符合Cat1通讯标准,支持最大下行速率 10Mbps 和最大上行速率5Mb ...

  6. 合宙-Air724模块的程序下载和二次开发下载方法

    一.资料准备 参考:Luat社区 (openluat.com) 合宙官方: 银尔达官方提供如下: 下载相应的资料即可,资料链接如下: https://doc.openluat.com/wiki/27? ...

  7. 合宙NB-IOT模块Air302连接Tlink云平台,APP和微信控制灯开关

    先注册Tlink云平台账号(网址),注册成功后找到开发者中心,查看Tlink云平台的MQTT协议说明.添加一个设备,把模块的电压,信号强度和灯状态上传云平台,Tlink提供的APP和微信控制灯开关,连 ...

  8. rndis模块 linux,【填坑求精】荔枝派rndis-host驱动合宙4G模块,荔枝派插入WIN/Unbutu识别为Rndis网卡...

    # #     拔掉模块 # # [ 1059.077876] usb 1-1: USB disconnect, device number 3 [ 1059.083457] rndis_host 1 ...

  9. 4g通信模块怎么连接sim卡_4G模块|合宙重磅推出虚拟SIM卡技术,告别卡座

    2018年5月11日下午4时许合宙团队正式发布了支持虚拟SIM卡技术的Luat底层版本V0021一经发布便深受开发者的热烈欢迎,咨询者络绎不绝,针对大家关心的几个常见问题特组织回复如下: 1, 合宙虚 ...

最新文章

  1. 【深度学习】基于Colab Pro的TPU训练模型教程(Tensorflow)
  2. 1111B - Average Superhero Gang Power
  3. Chapter 5 带颜色的同心圆
  4. php新浪api,php调用新浪短链接API的方法,php调用新浪api_PHP教程
  5. 韵达基于云原生的业务中台建设 | 实战派
  6. brand.php dnfire.cn_能美火灾报警_能美西科姆消防报警主机如何屏蔽故障点_滁州气象...
  7. 假如年少有为不自卑,懂得什么叫做珍惜
  8. ESG里程碑:发布第100份实验室报告
  9. 魔方内部长啥样?三维动画展示其结构,谁发明的真是个天才
  10. c++求n次方_课时9一元二次方程及其应用
  11. 软件工程导论 08章软件维护
  12. 一些看起来有用但没用过的函数
  13. (web前端每日一练)用JS制作一个能够在桌面运行的倒计时插件
  14. Linux中常用的scree的安装和常用的screen命令
  15. 赣州旅游职业学校学计算机,赣州旅游职业学校是公办的吗
  16. 【Spark ML】第 5 章:Recommendations
  17. [转]MATLAB 主要函数指令表(按功能分类)
  18. Python中and和or的运算规则,短路计算
  19. H.264及编解码调试
  20. Pyspider启动过程中的问题ssl/nss错配问题

热门文章

  1. 实体类Entity与接口映射文件Mapper.xml之间的联系
  2. 网易新游《英雄三国》剖析(二)——属性
  3. Tortoise Git 切换远程分支
  4. 记叙在人生路上对你影响最大的三位老师
  5. SQL对日期的一些处理
  6. FLTK学习-5-使用FLUID编程(3)
  7. 深入剖析实战Spring
  8. 作用域链和闭包?JS引擎如何选择顺序的选择变量?
  9. sql在已创建的表上添加约束
  10. 【前端】浅谈浏览器内核:渲染引擎、JS引擎