參考連結: NodeMCU API指令
https://github.com/nodemcu/nodemcu-firmware/tree/84a9ab35a8eb9b4ae2229bba7b2626c2a285818d/app/driver
I2C
id=0 sda=1 scl=2 -- initialize i2c, set pin1 as sda, set pin2 as scl i2c.setup(id,sda,scl,i2c.SLOW) -- user defined function: read from reg_addr content of dev_addr function read_reg(dev_addr, reg_addr) i2c.start(id) i2c.address(id, dev_addr ,i2c.TRANSMITTER) i2c.write(id,reg_addr) i2c.stop(id) i2c.start(id) i2c.address(id, dev_addr,i2c.RECEIVER) c=i2c.read(id,1) i2c.stop(id) return c end -- get content of register 0xAA of device 0x77 reg = read_reg(0x77, 0xAA) print(string.byte(reg))
UART
-- when 4 chars is received. uart.on("data", 4, function(data) print("receive from uart:", data) if data=="quit" then uart.on("data") end end, 0) -- when '\r' is received. uart.on("data", "\r", function(data) print("receive from uart:", data) if data=="quit\r" then uart.on("data") end end, 0)
1-Wire
-- 18b20 Example pin = 9 ow.setup(pin) count = 0 repeat count = count + 1 addr = ow.reset_search(pin) addr = ow.search(pin) tmr.wdclr() until((addr ~= nil) or (count > 100)) if (addr == nil) then print("No more addresses.") else print(addr:byte(1,8)) crc = ow.crc8(string.sub(addr,1,7)) if (crc == addr:byte(8)) then if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then print("Device is a DS18S20 family device.") repeat ow.reset(pin) ow.select(pin, addr) ow.write(pin, 0x44, 1) tmr.delay(1000000) present = ow.reset(pin) ow.select(pin, addr) ow.write(pin,0xBE,1) print("P="..present) data = nil data = string.char(ow.read(pin)) for i = 1, 8 do data = data .. string.char(ow.read(pin)) end print(data:byte(1,9)) crc = ow.crc8(string.sub(data,1,8)) print("CRC="..crc) if (crc == data:byte(9)) then t = (data:byte(1) + data:byte(2) * 256) * 625 t1 = t / 10000 t2 = t % 10000 print("Temperature="..t1.."."..t2.."Centigrade") end tmr.wdclr() until false else print("Device family is not recognized.") end else print("CRC is not valid!") end end
SPI
id: spi id number.
mode: MASTER or SLAVE(not supported yet).
cpol: CPOL_LOW or CPOL_HIGH, clock polarity.
cpha: CPHA_HIGH or CPHA_LOW, clock phase.
databits: DATABITS_8 or DATABITS_16.
clock: spi clock (not supported yet).
id: spi id number.
mode: MASTER or SLAVE(not supported yet).
cpol: CPOL_LOW or CPOL_HIGH, clock polarity.
cpha: CPHA_HIGH or CPHA_LOW, clock phase.
databits: DATABITS_8 or DATABITS_16.
clock: spi clock (not supported yet).
沒有留言:
張貼留言