你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L0 HAL驱动 串口 DMA,I2C读MPU6050 精华  

[复制链接]
党国特派员 发布时间:2015-1-6 13:21
阅读主题, 点击返回1楼
赞 1 收藏 17 评论75 发布时间:2015-1-6 13:21
75个回答
beary 回答时间:2015-7-29 23:54:32
i2c的地址都是0吗? 不需要设置了吗? 那如果两个i2c的话怎么整呢?
beary 回答时间:2015-7-29 23:55:56
有memcpy这些库函数的吗? 不好意思楼主,我是新手~
党国特派员 回答时间:2015-7-30 07:46:11
beary 发表于 2015-7-29 23:55
' }3 Q* X* z! H  t$ U& P有memcpy这些库函数的吗? 不好意思楼主,我是新手~
) `! Z" h& I  ?5 S
#include <string.h>
党国特派员 回答时间:2015-7-30 07:51:00
beary 发表于 2015-7-29 23:54
. d2 @3 D% `6 n; ~4 n8 ri2c的地址都是0吗? 不需要设置了吗? 那如果两个i2c的话怎么整呢?
+ E* i  A" O3 t. t
地址可以自己随便写一个。
efree 回答时间:2015-9-9 16:36:05
一定要马克
wen2wen 回答时间:2015-9-11 09:29:09
                                                                                       
me浩 回答时间:2015-9-11 09:39:00
谢谢分享
星辰一方 回答时间:2015-9-11 09:39:21
好贴,必须再顶起来~!
wangzhenassd 回答时间:2015-11-25 03:33:45
谢谢楼主!正在研究STM32的HAL库中
orima 回答时间:2015-11-25 08:32:01
好帖子,谢谢分享。。。
liuyu-419812 回答时间:2015-11-25 08:41:05
好东西,学习了
Dylan疾风闪电 回答时间:2015-11-26 14:56:38
mark 试下
stonematrix 回答时间:2015-12-3 10:47:09
@楼主, 下面这段确定没问题吗?8 v0 [/ p' T* G/ V) P
HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000)这个函数最后会发出一个STOP命令,但是MPU6050在读寄存器时,中间是不能有STOP的。' @' s& u/ V! o$ \5 {4 ]# S: {

: V  U$ V, l+ z; B" U& {( I" _//**************************************
# w% e8 X6 ~. I" H/ [8 w //从I2C设备读取一个字节数据
5 k# n/ L. t- ?3 F//**************************************
, e& \  L7 J. k- h& |) t; xuint8_t Single_ReadI2C(uint8_t REG_Address)
4 s1 b9 h1 d+ _$ ]7 r. t0 F {
$ r) O2 q: q  G7 Q. O& ?  h( m1 _" o9 u     uint8_t REG_data;
* {6 {3 c' x9 W5 o' i6 }/ C/ c     while(HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000) != HAL_OK)
7 ^; V; {8 E, ~4 j3 d     {
/ U) ^2 z4 ?. W         if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)0 L( I1 C# ?3 R7 F! A& o
         {}
7 w! X( V" s0 Y' m- O6 e     }3 l' G/ ^$ N) C: A
   
3 E) Y- O# C. Y) d6 H6 T, B     if(HAL_I2C_Master_Receive(&hi2cx,SlaveAddress+1,®_data,1,5000) != HAL_OK)/ E( b$ U: k9 i- X5 w0 o
     {2 ]% o: W2 ]" X# j" w/ T
         if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
" }$ m, H* P  O, J+ x         {}5 q* ^1 B0 i" F' l
     }- V- {( E. T- F5 D
     return REG_data;/ `/ ?- c' i- f- x. _
}5 O5 ^8 r# N4 V* \% ^$ s; q
党国特派员 回答时间:2015-12-3 13:58:23
stonematrix 发表于 2015-12-3 10:47: t( ~4 R5 h' Y0 D0 J
@楼主, 下面这段确定没问题吗?0 m+ G5 }7 ]3 |' l/ @
HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000)这个函数 ...

) k" u. L1 F7 h2 T. \  ]确实如何所说,但是我用上面的代码当时测试是可以工作的。
& t. o! ^# H$ J6 T8 ~2 {0 I* u) \
1 _' N  c  ^4 Q" x+ O使用HAL_I2C_Mem_Read应该会更好。
hpdell 回答时间:2015-12-29 16:07:55
这么好的帖子没人顶,我来了

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版