Luat训练营-第6天 第5天内容复习第6天内容内容概要Air724固件介绍固件内容说明固件下载板子正常:板子变砖: 脚本下载log库log.debug(tag, ...)log.info(tag, ...)log.warn(tag, ...)log.error(tag, ...)log.openTrace(v, uartid, baudrate) pins库pins.setup(pin, val, pull)pins.close(pin)GPIO输出GPIO中断输入GPIO代码实验 ADC库result=adc.open(id,scale)adcval, voltval=adc.read(id)result=adc.close(Id)ADC测试函数 相关知识补充
第5天内容复习
第5日内容
第6天内容 内容概要log,gpio,adc
Air724固件介绍固件文档链接
常见版本后缀说明:
FLOAT 浮点运算
TTS 文本转语音
LVGL 图形库
VOLTE 高清语音通话
BT 蓝牙
常用的固件版本:
Luat_RDA8910 最基础的固件版本
Luat_RDA8910_FLOAT 基础+float(浮点)运算
固件版本的不同:
Luat_RDA8910_TTS 带文本转语音
Luat_RDA8910_TTS_FLOAT 文本转语音+浮点运算
Luat_RDA8910_TTS_NOLVGL 支持文本转语音 不支持图形库
Luat_RDA8910_TTS_NOVOLTE_FLOAT 文本转语音 浮点 无高清语音通话
Luat_RDA8910_TTS_NOLVGL_FLOAT 文本转语音 无图形库 浮点
Luat_RDA8910_BT_FLOAT 带蓝牙 + 浮点运算
#以上仅对明明进行介绍,具体功能详见表单!!
├─demo 各种功能示例
├─doc html文件
├─lib 基础库
└release note.txt
每一个示例中包含mian.lua和功能.lua
main.lua的结构说明:
初始定义:
日志输出:
--加载日志功能模块,并且设置日志输出等级--如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可require "log"LOG_LEVEL = log.LOGLEVEL_TRACE--log.openTrace(true,1,115200) 串口输出日志信号和基站查询
--每1分钟查询一次GSM信号强度--每1分钟查询一次基站信息net.startQueryAll(60000, 60000)网络指示灯
--加载网络指示灯和LTE指示灯功能模块--根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚--合宙官方出售的Air720开发板上的网络指示灯引脚为pio.P2_0,LTE指示灯引脚为pio.P2_1require "netLed"netLed.setup(true,pio.P2_0,pio.P2_1)日志管理
--加载错误日志管理功能模块【强烈建议打开此功能】--如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的apirequire "errDump"errDump.request("udp://ota.airm2m.com:9072")加载模块和启动框架
--加载GPIO功能测试模块require "testGpioSingle"--启动系统框架sys.init(0, 0)sys.run()--之后不要写代码 固件下载 板子正常: 板子变砖:①关机状态下按住Boot按键
②开机,电脑响一声,松开Boot
③勾选USB BOOT下载,点击固件下载
1.进入项目管理测试界面
2.新建一个项目
3.选择文件,增加脚本
4.添加默认lib(使用旧lib就将lib作为脚本添加)
log库
log.debug(tag, …)输出debug级别的日志 调试
log.info(tag, …)输出info级别的日志 普通
log.warn(tag, …)输出warn级别的日志 警告
log.error(tag, …)输出error级别的日志 错误
log.openTrace(v, uartid, baudrate)开启或者关闭print的打印输出功能
pins库pins库
pins.setup(pin, val, pull)配置GPIO模式,包括输入输出IO和上升下降沿中断IO
pins.close(pin)关闭GPIO模式
GPIO输出 local level = 0 --GPIO4配置为输出,默认输出低电平,可通过setGpio79Fnc(0或者1)设置输出电平local setGpio4Fnc = pins.setup(4,0)sys.timerLoopStart(function() level = level==0 and 1 or 0 --实现电平翻转 setGpio4Fnc(level) log.info("testGpioSingle.setGpio4Fnc",level)end,1000) GPIO中断输入 --GPIO54配置为中断,可通过getGpio54Fnc()获取输入电平,产生中断时,自动执行gpio54IntFnc函数getGpio54Fnc = pins.setup(pio.P1_22,gpio54IntFnc) ]]function gpio54IntFnc(msg) log.info("testGpioSingle.gpio54IntFnc",msg,getGpio54Fnc()) --上升沿中断 if msg==cpu.INT_GPIO_POSEDGE then --下降沿中断 else endend GPIO代码实验 module(...,package.seeall)require "pins"function gpio_test() local setgpio12 = pins.setup(pio.P0_12,0) -- GPIO12输出 setgpio12(0) -- 输出0 log.info("GPIO",0) sys.wait(1000) setgpio12(1) -- 输出1 log.info("GPIO",1) sys.wait(1000)endlocal getgpio10 = pins.setup(pio.P0_10)-- 协程sys.taskInit(function () while true do gpio_test() sys.wait(1000) getgpio10() endend,...) ADC库ADC库
result=adc.open(id,scale)功能:打开ADC通道
adcval, voltval=adc.read(id)功能:读取ADC。
result=adc.close(Id)功能:关闭ADC通道
ADC测试函数 --- ADC读取测试-- @return 无-- @usage read()local function read() --ADC1接口用来读取电压 local ADC_ID = 1 -- 读取adc -- adcval为number类型,表示adc的原始值,无效值为0xFFFF -- voltval为number类型,表示转换后的电压值,单位为毫伏,无效值为0xFFFF;adc.read接口返回的voltval放大了3倍,所以需要除以3还原成原始电压 -- adc1读取量程为0-1400mV local adcval,voltval = adc.read(ADC_ID) log.info("testAdc1.read",adcval,(voltval-(voltval%3))/3,voltval)end 相关知识补充 local function read()end-- 开启对应的adc通道adc.open(0) -- 顶格写的为实际运行的部分