4G模块724UG 485串口收发数据

## 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


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容