ESP8266开发笔记(三)

一、8266通讯引脚

二、通讯方式

三、驱动方式

一、8266通讯引脚

        

8266通讯引脚在右上方,可用通讯串口只有一个,为串口0

二、通讯方式

         全双工异步通讯

三、驱动方式

         由于通讯串口只有一个(串口0),所以需要我们做的事情非常少,仅需要注册串口,然后利用定时器来监听串口数据。

串口注册API:

uart.on(method, [number/end_char], [function], [run_input])

method = "data", 表示uart接收到了数据

number/end_char

  • n=0,串口将接受每一个字符
  • n<255,则在接收到n个字符时调用回调函数
  • 有一个字符“c”,当遇到“c”或接收到最大值n=255时,将调用回调函数

函数回调函数,事件“数据”有这样一个回调:函数(数据)结束function 为回调函数,"data" 的回调函数签名为function(data) end

run_input: 010表示从uart输入的data不经过lua解释器执行,1表示输入的行会被送到lua解释器

执行。

程序:

/*
*完成时间:2019-7-17
*程序:串口通讯(新版本固件)
*描述:uart.on接口为串口监听API,函数原型 uart.on(method, [number/end_char], [function], [run_input])
*		第一个参数为定义串口接收数据,规定为 “data”(双引号不能省略)
*		第二参数如果n=0,将接收缓冲区中的每个字符
*			   如果n<255,则在接收到n个字符时调用回调函数
*			   如果有一个字符“c”,当遇到“c”或接收到最大值n=255时,将调用回调函数							
*		第三个参数 回调函数  形如  function(data) end	
*		第四个参数 填0/1,当填入0时0---UART的输入将不会进入lua解释器,可以接受二进制数据
*						  1---UART的输入将进入lua解释器并运行
*/
gpio.mode(4,gpio.OUTPUT)
UartReceData = ""
UartReceCnt = 0
UartReceDatastat = false
UartReceTempCnt = 0
uart.on("data",0,function(data)    --注册串口函数
     UartReceData = UartReceData..data  
     UartReceCnt = UartReceCnt + 1
end,1)
if not tmr.create():alarm(10, 1, function()  --定时器用于判断上一帧数据与下一帧数据的间隔时间
       if UartReceCnt ~= 0 then 
        if UartReceTempCnt == UartReceCnt then  
            UartReceCnt = 0
            UartReceTempCnt = 0  
            if UartReceData == "open" then  
                gpio.write(4,0)
            end
            if UartReceData == "close" then
                gpio.write(4,1)  
            end
             uart.write(0,UartReceData)       --将内容回写至串口
             UartReceData = ""  
        else
            UartReceTempCnt = UartReceCnt  
            
        end
     end
end)
then
    print("fail")
end

现象:

         红色框内为回写的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值