我写了这个代码来连接gsm模块,任何人都可以检查代码并给我一些命题吗?
hex1= '0x1A';
function delay_s(delay)
delay = delay or 1
local time_to = os.time() + delay
while os.time() < time_to do end
end
uart.alt(1);
uart.setup(0, 9600, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1)
uart.write(0,"AT+IPR=9600\n")
for j = 1, 10 do
uart.write(0, "AT\n")
end
delay_s(1000)
uart.write(0, "AT\n")
delay_s(1000)
uart.write(0, 'AT+CSCS="GSM"\n')
delay_s(1000)
uart.write(0, 'AT+CMGF=1\n')
delay_s(1000)
uart.write(0, 'AT+CMGS="+21654102832"\n')
delay_s(1000)
uart.write(0, " Salut tout le mond !!!\n")
delay_s(1000)
uart.write(0, hex1)
delay_s(1000)
答案 0 :(得分:0)
此代码甚至不会在NodeMCU上运行,因为标准Lua os.time()
将失败,因为@echo off
`C:\Windows\System32\RemoveDrive E: -L`
模块不可用。我建议你深入研究http://nodemcu.readthedocs.io/en/latest/en/lua-developer-faq/#how-is-nodemcu-lua-different-to-standard-lua。
此外,即使它可用os
也有1秒的分辨率。
返回的值是一个数字,其含义取决于您的系统。在POSIX,Windows和其他一些系统中,此数字计算自某个给定开始时间(“epoch”)以来的秒数。
因此,您的os.time()
会延迟执行1000 秒。忙着等待这样做......不是最佳的。
您可能希望改为使用tmr
module。
答案 1 :(得分:0)
uart.alt(x);
0 - standard pins
1 - alternate the pins
您没有指定要用于通信的引脚,或者使用uart.alt(0);
作为标准引脚