Air202学习 三 (模块串口使用)

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

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值