完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我尝试用HAL_I2C_Master读取LSM6DS0上的加速度计。我用truestudio c编码,我的主板是STM32l476RG。我的slaveaddress是1101011xb所以D7 / D6用于R / W. 我的加速度计日期可以在28h到2Dh的寄存器中读取。Infortunatly它不起作用我不知道如何在我的电脑上显示数据,然后存储。大家可以给我一些指导吗,谢谢
|
|
相关推荐
2个回答
|
|
你没有正确使用HAL I2C功能。检查参数以查看错误。
|
|
|
|
你对LSM6DS0 I2C接口的工作方式有错误的理解,并且你正在使用HAL库中错误的I2C函数。
请阅读LSM6DS0数据表的 4.1.1节。密切注意表16到19. LSM6DS0实现了多个寄存器,这些寄存器由子地址标识。为了从子地址读取数据,主机必须写入从机地址,然后写入寄存器子地址,然后执行重复启动和从机地址读取。 HAL_I2C_Master_Transmit()和HAL_I2C_Master_Receive()函数不支持从子地址读取数据所需的I2C传输类型。HAL_I2C_Master_Receive()不写入子地址,也不执行重复启动。 相反,你应该使用HAL_I2C_Mem_Write()和HAL_I2C_Mem_Read()。尝试把代码修改一下:
|
|
1 条评论
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:30 , Processed in 0.773252 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号