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

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' W; c7 V+ ^; j* C
有memcpy这些库函数的吗? 不好意思楼主,我是新手~
7 C' S+ s+ |3 B2 j' ~
#include <string.h>
党国特派员 回答时间:2015-7-30 07:51:00
beary 发表于 2015-7-29 23:54* d) _$ A* o5 I, k
i2c的地址都是0吗? 不需要设置了吗? 那如果两个i2c的话怎么整呢?
+ b8 G! `8 X7 p' D0 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
@楼主, 下面这段确定没问题吗?2 a# u  c4 N5 D- ~$ ~; b
HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000)这个函数最后会发出一个STOP命令,但是MPU6050在读寄存器时,中间是不能有STOP的。
& a) f/ _4 o; o. i. y4 t
2 t! s# ]/ S% s$ o: n//**************************************) ?9 a- o4 q& s6 ?
//从I2C设备读取一个字节数据3 N. a% n1 v3 V4 m
//**************************************7 S7 y, T  z9 t0 @4 C9 u& B
uint8_t Single_ReadI2C(uint8_t REG_Address)% a+ p) f+ ~: E; j/ ^1 K
{
$ J: \, i2 t8 F     uint8_t REG_data;
1 o. p( T/ M3 ?: o+ w( g; ]1 I     while(HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000) != HAL_OK)
" o$ A+ K3 F7 y6 K     {/ J9 ]) d5 n/ r! K; ~6 w  V1 Z
         if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
/ L, c' G2 G( S- [         {}
2 |) @/ [7 j5 y# A5 z     }# j6 ~: P& Q8 O6 w/ y
    3 D$ K& u/ ~2 U' A  r3 E4 q9 {
     if(HAL_I2C_Master_Receive(&hi2cx,SlaveAddress+1,®_data,1,5000) != HAL_OK)4 j7 N0 ^% l4 K2 N. C
     {
0 V! S; z+ c; [4 V- o4 @8 S& _# ?6 }         if(HAL_I2C_GetError(&hi2cx) != HAL_I2C_ERROR_AF)
+ M# [3 g3 m/ A0 B         {}! P1 p* J6 a" O
     }" L9 _, M- d9 k5 f; I! S% P3 w
     return REG_data;% Q( t" S1 e; I3 q: K
}
  \7 h* `8 j. W8 s. R! {; b
党国特派员 回答时间:2015-12-3 13:58:23
stonematrix 发表于 2015-12-3 10:47& Q% H' p7 k  n) i% y% P8 m# _
@楼主, 下面这段确定没问题吗?9 {. E" d& P; Q- x! m, n: b
HAL_I2C_Master_Transmit(&hi2cx,SlaveAddress,®_Address,1,5000)这个函数 ...

3 D9 {. d; Z4 A9 ]2 j6 V确实如何所说,但是我用上面的代码当时测试是可以工作的。: k1 c: Y& ~" b! P
; h" d5 ^. ?# P9 Y' i, l9 ^- J- N
使用HAL_I2C_Mem_Read应该会更好。
hpdell 回答时间:2015-12-29 16:07:55
这么好的帖子没人顶,我来了

所属标签

相似技术帖

官网相关资源

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