从机是采用硬件I2C实现,开启了Fast-mode Plus (1 MHz)
在新的2.24版程序上测试已经没问题,作为从机的情况下,发送和接收都正常。剩下就是发布前制作个操作说明,并在上位机上增加个操作界面。
测试从机I2C接收,800KHz
[Lua] 纯文本查看 复制代码 print("I2C从机接收测试")
i2c_bus("initslave", 0x20) -- 8bit = 7bit地址+读写控制位
len, str = i2c_bus("reciveslave", 9, 3000)
print(string.format("接收数据大小:%d", len))
print_hex(str)
i2c_bus("deinitslave")
[Lua] 纯文本查看 复制代码 -- 设置I2C速度是
i2c_bus("init", 100000)
i2c_bus("start") -- 启动
ack = i2c_bus("send", 0x20) -- 写操作
if (ack ~= 0) then
print("I2C从机无应答 send address")
end
ack = i2c_bus("send", "023225678") -- 发送数据
if (ack ~= 0) then
print("I2C从机无应答 send ")
end
i2c_bus("stop")
测试从机I2C发送,800KHz
[Lua] 纯文本查看 复制代码 print("I2C从机发送测试")
i2c_bus("initslave", 0x20) -- 8bit = 7bit地址+读写控制位
for i=1, 10, 1 do
len = i2c_bus("sendslave", "123456789", 3000)
print_hex(len)
end
i2c_bus("deinitslave")
[C] 纯文本查看 复制代码 -- 设置I2C速度是
i2c_bus("init", 100000)
for i = 1, 10, 1 do
i2c_bus("start") -- 启动
ack = i2c_bus("send", 0x21) -- 写操作
--if (ack ~= 0) then
-- print("I2C从机无应答 send address")
--end
str = i2c_bus("recive", 9) -- 发送数据
print("接受字符"..str)
i2c_bus("stop")
end
|