Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
luat i2c驱动 mpu6050 获取数据
Lua
mpu6050
i2c
```lua local i2cslaveaddr = 0x68 --mpu6050 local i2cid = 2 if i2c.setup(i2cid,i2c.SLOW) ~= i2c.SLOW then log.error("testI2c.init","fail") return end sys.taskInit(fun...
```lua local i2cslaveaddr = 0x68 --mpu6050 local i2cid = 2 if i2c.setup(i2cid,i2c.SLOW) ~= i2c.SLOW then log.error("testI2c.init","fail") return end sys.taskInit(function () i2c.send(i2cid,i2cslaveaddr,{0X6b,0x80})--复位 sys.wait(100) i2c.send(i2cid,i2cslaveaddr,{0X6b,0x00})--唤醒 sys.wait(100) i2c.send(i2cid,i2cslaveaddr,{0x1b,0x80})--陀螺仪传感器±2000dps i2c.send(i2cid,i2cslaveaddr,{0x1c,0x00})--加速度传感器±2g i2c.send(i2cid,i2cslaveaddr,{0x19,19})--采样率50hz i2c.send(i2cid,i2cslaveaddr,{0x38,0x00})--关闭所有中断 i2c.send(i2cid,i2cslaveaddr,{0x6a,0x00})--I2C主模式关闭 i2c.send(i2cid,i2cslaveaddr,{0x23,0x00})--关闭fifo i2c.send(i2cid,i2cslaveaddr,{0x37,0x80})--int引脚低电平有效 i2c.send(i2cid,i2cslaveaddr,0x75)--读器件地址 local revData = i2c.recv(i2cid,i2cslaveaddr,1) log.info("i2c read",revData:toHex()) if revData:byte() == 0x68 then i2c.send(i2cid,i2cslaveaddr,{0x6b,0x01})--设置x轴的pll为参考 i2c.send(i2cid,i2cslaveaddr,{0x6c,0x00})--加速度计与陀螺仪开启 else log.info("i2c","address not right") return end --处理接收到的数据,变成正确数值 function getTrueData(d) i2c.send(i2cid,i2cslaveaddr,d)--获取的地址 local s = i2c.recv(i2cid,i2cslaveaddr,2)--获取2字节 return s:byte()*256 + s:byte(2) end while true do sys.wait(50) local gx = getTrueData(0x43)/131 local gy = getTrueData(0x44)/131 local gz = getTrueData(0x45)/131 log.info("mpu6050.Gyroscope",gx,gy,gz) local ax = getTrueData(0x3b)/16 local ay = getTrueData(0x3c)/16 local az = getTrueData(0x3d)/16 log.info("mpu6050.Accelerometer",ax,ay,az) end end) ```
发表于 2019-06-11 14:44
阅读 ( 3008 )
1 推荐
打赏
收藏
你可能感兴趣的文章
11、合宙Air模块Luat开发:通过http协议获取天气信息
2304 浏览
9、合宙Air模块Luat开发:认识NVS数据管理模块
1887 浏览
8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用
2418 浏览
X、合宙Air模块Luat开发:全网首发,通过iic直接驱动OLED,720Sl开始有显时代
2606 浏览
code128条形码生成规则和原理
4064 浏览
相关问题
Air720SL的I2C及I2C2对应设备ID是?如何使用api读写16位地址寄存器
0 回答
air202,用mqtt协议连接onenet平台(lua)。
1 回答
AIR801模块如何将 GPIO_8、GPIO_9如何复用成I2C
1 回答
268F i2c.setup()失败
1 回答
Air202 i2c.write()和i2c.send()有什么区别?
2 回答
请问lua中number类型的浮点数有没有快速的函数将其转换成按字节存储的table变量
1 回答
5 条评论
请先
登录
后评论
晨旭
菜鸟
20 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!