今天我尝试使用DS2408和dev NodeMCU。 https://datasheets.maximintegrated.com/en/ds/DS2408.pdf 我以https://github.com/queezythegreat/arduino-ds2408/blob/master/DS2408/DS2408.cpp为例。
local pin = 3
local addr = '29-example'
local DS2408_CHANNEL_WRITE_CMD = 0x5A
function set_state(state)
ow.setup(pin)
if (ow.reset(pin) == 1) then
ow.select(pin, addr)
ow.write(pin, DS2408_CHANNEL_WRITE_CMD, 1)
ow.write(pin, state, 1)
ow.write(pin, bit.bnot(state), 1)
if (ow.read(pin) == 0xAA) then
if (ow.read(pin) == state) then
return true
end
end
else
return false
end
end
print(set_state(0x02))
设置状态正常。设置完成后,One Wire发送0xAA确认(Works),下一个字节是IO当前具有的状态。 如您所见,我将第二个字节与我的代码中的原始状态进行比较。 我总是得到0x0作为第二个字节有什么不对...
任何人都知道发生了什么事?
亲切的问候, 马可