air202原理图控制继电器原理图:
1. 通过使用串口1发送"open"打开继电器; 发送"close"关闭继电器; 接收到其他数据吧数据在通过模块的串口1发送出去
同时每3秒循环使用串口1发送数据"匠芯科技" 可以看到在循环调用的函数中同时使用"print("Usart function test")"b并没有在串口1输出;是因为print函数时通过下载程序的串口输出的(HOST_UART)
module(...,package.seeall)
require "pins" --GPIO操作使用到的库文件 加载
pio.pin.setdir(pio.OUTPUT,pio.P0_5) --设置GPIO5为输出方式
pio.pin.setval(0,pio.P0_5) --初始化GPIO5输出低电平
--设置串口1的 波特率 数据位 校验位 停止位 通信的串口
uart.setup(1,115200,8,uart.PAR_NONE,uart.STOP_1)
local function Usart()
print("Usart function test")--使用print 打印调试下载程序的串口
uart.write(1,"匠芯科技") --串口1 输出信号 循环输出
end
sys.timer_loop_start(Usart,3000) --循环定时器,每隔3秒运行一次 调用函数Usart
--[[函数名:UartReadData
功能 :读取串口接收到的数据
参数 :无 返回值:无
]]
local function UartReadData()
local data = "" --定义接收串口数据变量
data = uart.read(1,"*l") --串口1接收数据 [*l:读取到结束字符\n或者阻塞发送 ] 返回接收的数据
if data == "open" then
pio.pin.setval(1,pio.P0_5) uart.write(1,"open")
elseif data == "close" then
pio.pin.setval(0,pio.P0_5) uart.write(1,"close")
else
uart.write(1,data) --串口1 接收到非控制数据,把数据返回串口1
end
end
--保持系统处于唤醒状态,此处只是为了测试需要,所以此模块没有地方调用pm.sleep("UartTest")休眠,不会进入低功耗休眠状态
--在开发“要求功耗低”的项目时,一定要想办法保证pm.wake("UartTest")后,在不需要串口时调用pm.sleep("UartTest")
pm.wake("UartTest")
sys.reguart(1,UartReadData)--注册串口的数据接收函数,串口收到数据后,会以中断方式,调用UartReadData接口读取数据
使用串口助手发送"open"打开继电器
串口助手发送"close"关闭继电器
lua控制串口程序下载:https://download.csdn.net/download/dianzishi123/10776677