• 欢迎大家分享资料!前往留言板评论即可!

17-GPRS(Air202)串口

合宙 模组资料网 4年前 (2021-05-15) 1069次浏览 0个评论 扫描二维码
                        <br>

https://www.cnblogs.com/yangfengwu/p/9968716.html

17-GPRS(Air202)串口

17-GPRS(Air202)串口

现在看一下官方给的demo

17-GPRS(Air202)串口17-GPRS(Air202)串口 其实只要有两个就好说了

module(…,package.seeall)


–[[

函数名:print

功能  :打印接口,此文件中的所有打印都会加上test前缀

参数  :无

返回值:无

]]

local function print(…)

    _G.print(“test”,…)

end



–串口配置

local UART_ID = 1 –uart1

local uartReadData = “”;

local uartReadDataCnt = 0;



–定时器空闲中断检测(串口空闲接收数据)

local UartTimerCnt = 0;

local function UartTimer()

    if  uartReadDataCnt ~= 0 then

        UartTimerCnt = UartTimerCnt+1;

        if  UartTimerCnt >= 20 then

            UartTimerCnt=0;

            uartReadDataCnt = 0;

            uart.write(UART_ID,uartReadData);

            uartReadData = “”;

        end

    end

end

sys.timer_loop_start(UartTimer,10)



–读取串口接收到的数据

local uartdata = “”

local function read()

    uartdata = “”

    while true do

        uartdata = uart.read(UART_ID,”*l”,0)

        if not uartdata or string.len(uartdata) 0 then break end

        uartReadData = uartReadData..uartdata;

        uartReadDataCnt = uartReadDataCnt +1

        UartTimerCnt = 0;

    end

end



–注册串口的数据接收函数,串口收到数据后,会以中断方式,调用read接口读取数据

sys.reguart(UART_ID,read)

–配置并且打开串口

uart.setup(UART_ID,115200,8,uart.PAR_NONE,uart.STOP_1)

17-GPRS(Air202)串口17-GPRS(Air202)串口现在下载测试,就是发送给串口1什么就回什么

17-GPRS(Air202)串口17-GPRS(Air202)串口17-GPRS(Air202)串口17-GPRS(Air202)串口

可以了,现在发指令控制GPIO5 

指令就用

{data:switch,bit:1,status:0}   控制GPIO5输出低电平

{data:switch,bit:1,status:1}   控制GPIO5输出高电平

有可能会问,搞这么复杂的指令干嘛。。。。为了后期统一,而且现在物联网通信json格式用的很多,所以。。。。

module(…,package.seeall)


–[[

函数名:print

功能  :打印接口,此文件中的所有打印都会加上test前缀

参数  :无

返回值:无

]]

local function print(…)

    _G.print(“test”,…)

end



–串口配置

local UART_ID = 1 –uart1

local uartReadData = “”;

local uartReadDataCnt = 0;



pio.pin.setdir(pio.OUTPUT,pio.P0_5)

pio.pin.setval(0,pio.P0_5)



–定时器空闲中断检测(串口空闲接收数据)

local UartTimerCnt = 0;

local function UartTimer()

    if  uartReadDataCnt ~= 0 then

        UartTimerCnt = UartTimerCnt+1;

        if  UartTimerCnt >= 20 then–有200ms不进去中断接受数据了,就认为收完了一条数据

            UartTimerCnt=0;

            uartReadDataCnt = 0;

      

            if  uartReadData==”{data:switch,bit:1,status:0}” then

                pio.pin.setval(0,pio.P0_5)

                uart.write(UART_ID,uartReadData);–返回数据

            elseif  uartReadData==”{data:switch,bit:1,status:1}” then

                pio.pin.setval(1,pio.P0_5)      

                uart.write(UART_ID,uartReadData);–返回数据

            end

            

            uartReadData = “”;

        end

    end

end

sys.timer_loop_start(UartTimer,10)–10MS的循环定时器



–读取串口接收到的数据

local uartdata = “”

local function read()

    uartdata = “”

    while true do

        uartdata = uart.read(UART_ID,”*l”,0)

        if not uartdata or string.len(uartdata) == 0 then break end

        uartReadData = uartReadData..uartdata;–接收数据

        uartReadDataCnt = uartReadDataCnt +1

        UartTimerCnt = 0;

    end

end



–注册串口的数据接收函数,串口收到数据后,会以中断方式,调用read接口读取数据

sys.reguart(UART_ID,read)

–配置并且打开串口

uart.setup(UART_ID,115200,8,uart.PAR_NONE,uart.STOP_1)

17-GPRS(Air202)串口17-GPRS(Air202)串口17-GPRS(Air202)串口17-GPRS(Air202)串口17-GPRS(Air202)串口17-GPRS(Air202)串口

资料源码链接

链接:https://pan.baidu.com/s/1-SRfsKGQ7rZVvFmp1ObHWw 密码:p9qs

基础教程源码链接如果失效,请在淘宝介绍中下载,由于链接还是失效,请联系卖家,谢谢

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-18540610442.6.36a74814ZSaRsu&id=569295486025

 

<

p style=”margin-top: 10px; margin-right: auto; margin-left: auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 16px;”>https://www.cnblogs.com/yangfengwu/p/9969179.html


转载请注明原文链接:17-GPRS(Air202)串口
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址