## 724UG
## 485串口收发数据
## 4G
直接上代码,代码比较简单,大家花10分钟就看懂,和普通的单片机一样写程序:
main.lua文件:
--PIN 设置引脚模式
module(...,package.seeall)
--导入引脚配置头文件
require"pins"
require"utils"
require"pm"
--蜂鸣器 输出模式 默认输出低电平 蜂鸣器不响
local Bell=pins.setup(pio.P0_6, 0,pio.PULLDOWN)
--继电器 输出模式 默认输出低电平 继电器不工作
local Control=pins.setup(pio.P0_11, 0)
--绿灯 输出模式 默认输出低电平 绿灯熄灭
local Led1=pins.setup(pio.P0_12, 0)
--红灯 输出模式 默认输出低电平 红灯熄灭
local Led2=pins.setup(pio.P0_9, 0)
--黄灯 输出模式 默认输出低电平 黄灯熄灭
local Led3=pins.setup(pio.P0_16, 0)
--串口485使能引脚
local EN485=pins.setup(pio.P0_19, 0)
local UART_ID = 2
local dataContaol=0
--配置并且打开串口
uart.setup(UART_ID,115200,8,uart.PAR_NONE,uart.STOP_1)
--让所有工作起来
function controlData()
if dataContaol==0 then
dataContaol=1;
Led1(0)
Led2(0)
Led3(0)
Control(0)
elseif dataContaol==1 then
dataContaol=2
Led1(1)
Led2(1)
Led3(1)
Control(0)
elseif dataContaol==2 then
dataContaol=0
Led1(0)
Led2(0)
Led3(0)
Control(0)
end
log.info("dataContaol",dataContaol)
sys.timerStart(controlData,1000)
end
local function taskRead()
local cacheData,frameCnt = "",0
while true do
local s = uart.read(UART_ID,"*l")
sys.wait(10)
if s == "" then
if cacheData:len()>0 then
log.info("ata length:",cacheData)
EN485(1)
uart.write(UART_ID,cacheData)
sys.wait(1)
cacheData=""
log.info("send data\r\n")
EN485(0)
sys.wait(1)
end
else
log.info("get data\r\n")
cacheData = cacheData..s
end
end
end
uart.setup(UART_ID,115200,8,uart.PAR_NONE,uart.STOP_1)
controlData()
sys.taskInit(taskRead)
pinsTY.lua文件:
--PIN 设置引脚模式
module(...,package.seeall)
--导入引脚配置头文件
require"pins"
require"utils"
require"pm"
--蜂鸣器 输出模式 默认输出低电平 蜂鸣器不响
local Bell=pins.setup(pio.P0_6, 0,pio.PULLDOWN)
--继电器 输出模式 默认输出低电平 继电器不工作
local Control=pins.setup(pio.P0_11, 0)
--绿灯 输出模式 默认输出低电平 绿灯熄灭
local Led1=pins.setup(pio.P0_12, 0)
--红灯 输出模式 默认输出低电平 红灯熄灭
local Led2=pins.setup(pio.P0_9, 0)
--黄灯 输出模式 默认输出低电平 黄灯熄灭
local Led3=pins.setup(pio.P0_16, 0)
--串口485使能引脚
local EN485=pins.setup(pio.P0_19, 0)
local UART_ID = 2
local dataContaol=0
--配置并且打开串口
uart.setup(UART_ID,115200,8,uart.PAR_NONE,uart.STOP_1)
--让所有工作起来
function controlData()
if dataContaol==0 then
dataContaol=1;
Led1(0)
Led2(0)
Led3(0)
Control(0)
elseif dataContaol==1 then
dataContaol=2
Led1(1)
Led2(1)
Led3(1)
Control(0)
elseif dataContaol==2 then
dataContaol=0
Led1(0)
Led2(0)
Led3(0)
Control(0)
end
log.info("dataContaol",dataContaol)
sys.timerStart(controlData,1000)
end
local function taskRead()
local cacheData,frameCnt = "",0
while true do
local s = uart.read(UART_ID,"*l")
sys.wait(10)
if s == "" then
if cacheData:len()>0 then
log.info("ata length:",cacheData)
EN485(1)
uart.write(UART_ID,cacheData)
sys.wait(1)
cacheData=""
log.info("send data\r\n")
EN485(0)
sys.wait(1)
end
else
log.info("get data\r\n")
cacheData = cacheData..s
end
end
end
uart.setup(UART_ID,115200,8,uart.PAR_NONE,uart.STOP_1)
controlData()
sys.taskInit(taskRead)
源代码在这里下载
链接:https://pan.baidu.com/s/1lVbWA8NWvWo1DXUJFVLdaw
提取码:9fhn
分享
热搜
相关推荐
-
马刺送奇才6连败 文班亚马50+8三分普尔42分
醉卧浮生 4509跟贴 -
美国宾夕法尼亚州参院竞选将重新计票
参考消息 3402跟贴 -
给你讲个笑话:凯迪拉克CT6在10月份只卖了1辆,这你敢信?
爱论历史 1261跟贴 -
始终不忘,青云之志
沈述慢撩 1305跟贴 -
为了能当领导,我爸给我报的每个志愿都是「人力资源管理」|梁彦增 一席
一席YiXi 云音乐特供00:02 -
研究生偷卖实验室「废品」月入过万,导师:这钱拿来补贴经费就闭环了
生物学霸 99跟贴 -
0-0,亚洲第8逼平澳大利亚,国足渔翁得利:争小组第二有戏了
侧身凌空斩 1203跟贴 -
张家界大庸古城试运营三年入驻店铺可查仅18家,日均购票人数不足20人,商家自称“苟延残喘”
极目新闻 1873跟贴 -
紫金矿业回应在哥伦比亚被掠走3.2吨黄金:影响较小
第一财经 241跟贴 -
导师梦想成为诺奖得主,学生竟劝他:醒醒吧,你连一篇 Nature 都没发
生物学霸 10跟贴 -
乌外交部:没有也不打算拥有核武器
央视新闻客户端 2080跟贴 -
惨了,因质粒用错,博士被撤稿,痛失学位,导师:我不允许各位重蹈覆辙
生物学霸 8跟贴 -
一篇论文没发,师兄竟获得诺贝奖,他当场致谢了让自己延毕的导师
生物学霸 15跟贴 -
上海试点:菜场现烧!97元能吃一桌菜,晚上大排长龙,商家却说“不太赚钱”
上观新闻 404跟贴 -
1美元兑换100.74卢布,俄罗斯卢布贬值至不足1美分,开始加速了
山河路口 52跟贴 -
国家卫健委:我国现行1610项食品安全国家标准,含2万多项指标
澎湃新闻 219跟贴 -
再签60单!为何C919大飞机总订单已超1500架,总交付量却只有11架
井普椿的独白 158跟贴 -
DIY计算器装ChatGPT操作系统!终极作弊神器,代码已开源
量子位 60跟贴 -
女子韩国旅游订房踩坑:每晚标价6万多未看清币种符号,回国后被扣6万元人民币
上游新闻 121跟贴 -
科普:什么是协议中的上拉电阻,下拉电阻
线缆行业朋友分享圈
热门跟贴