代码拉取完成,页面将自动刷新
第一次开机可以正常定位,定位成功后关闭GPS电源,进入DEEP休眠模式,采用定时器开机,开机后GPS无法工作。
正常定位后进入深度休眠模式,定时器开机,无法定位。
深度休眠后,定时开机,GPS应正常工作。
PROJECT = "gnss"
VERSION = "1.0.0"
-- sys库是标配
local sys = require("sys")
require("sysplus")
local gps_uart_id = 2
uart.setup(gps_uart_id, 115200)
dw=0
function gpsinit()
libgnss.clear() -- 清空数据,兼初始化
log.info("GPS", "start")
pm.power(pm.GPS, false)
pm.power(pm.GPS, true)
libgnss.bind(gps_uart_id)
sys.wait(200) -- GPNSS芯片启动需要时间
libgnss.debug(true)
-- 增加显示的语句
uart.write(gps_uart_id, "$CFGMSG,0,1,1\r\n") -- GLL
sys.wait(20)
uart.write(gps_uart_id, "$CFGMSG,0,5,1\r\n") -- VTG
sys.wait(20)
uart.write(gps_uart_id, "$CFGMSG,0,6,1\r\n") -- ZDA
sys.wait(20)
end
-- 订阅GNSS状态编码
sys.subscribe("GNSS_STATE", function(event, ticks)
log.info("gnss", "state", event, ticks)
if event == "FIXED" then
dw=1
end
end)
-- 主进程
sys.taskInit(function()
log.info("开机")
mobile.flymode(0, false)
gpsinit()
sys.waitUntil("IP_READY", 15000)
log.info("net", "IP_READY")
end)
--休眠进程
sys.taskInit(function()
while dw==0 do
sys.wait(20)
end
mobile.flymode(0, true)
pm.dtimerStart(0, 1*60*1000)--毫秒
log.info("开始休眠")
pm.power(pm.GPS, false)
pm.power(pm.USB, false) -- 如果是插着USB测试,需要关闭USB
pm.force(pm.DEEP) --也可以pm.HIB模式
sys.wait(1000)
log.info("休眠失败")
end)
sys.run()
新建issues,自动分配负责人进行确认
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
【自动回复】检测到您在填写issue内容时,故意删掉了一个或多个小标题,信息没有填写完整
您的本次行为已被记录在案,多次违反规则将被禁止新建issue。
的确有问题
添加了简化的重现脚本, 与libgnss库无关了
@alien2017 能不能临时给个固件啊,我这里想做gps产品
下午发个临时版本给你吧
强制UART2使用Air780EG布局的固件
https://cowtransfer.com/s/8950ab6e9e3a4f 点击链接查看 [ LuatOS-SoC_V1104_EC618_TEMP_20230223_134700_Air780EG.soc ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 76a8gj 查看;
最新代码解决了
登录 后才可以发表评论