OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8713|回复: 20

ADXL345模块读取ID失败

[复制链接]

10

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2014-12-10
在线时间
46 小时
发表于 2015-1-1 21:20:50 | 显示全部楼层 |阅读模式
5金钱
开发板的光碟里面的例程ADXL345的初始化函数如下:
//初始化ADXL345.
//初始化成功为0;初始化失败为1
u8 ADXL345_Init(void)
{  
IIC_Init(); //I2C初始化
if(ADXL345_RD_Reg(DEVICE_ID)==0XE5) //读取器件ID
{  
ADXL345_WR_Reg(DATA_FORMAT,0X2B); //低电平中断输出
ADXL345_WR_Reg(BW_RATE,0x0A); //数据输出速度
ADXL345_WR_Reg(POWER_CTL,0x28);   //连接使能,测试模式
ADXL345_WR_Reg(INT_ENABLE,0x00); //不使用中断
ADXL345_WR_Reg(OFSX,0x00);
ADXL345_WR_Reg(OFSY,0x00);
ADXL345_WR_Reg(OFSZ,0x00);
return 0;
}
return 1;    
}   
这个函数在读取ID时失败,无法进入if()函数,无法初始始化成功,为什么会无法读取ID呢?请帮忙。谢谢!

最佳答案

查看完整内容[请看2#楼]

回复【5楼】正点原子: --------------------------------- 问题解决了,谢谢原子哥,错在I2C的初始化上。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2014-12-10
在线时间
46 小时
 楼主| 发表于 2015-1-1 21:20:51 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
问题解决了,谢谢原子哥,错在I2C的初始化上。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-1-1 22:51:53 | 显示全部楼层
是战舰板么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2014-12-10
在线时间
46 小时
 楼主| 发表于 2015-1-1 22:57:09 | 显示全部楼层
是我自己画的板子。我们用的程序,前几天都可以的,但今天一直读不出它的ID,我以为是新焊的板子焊得不好,重新焊了几块,还是不行,拿出老的板子来试,也是不行。想问一下,站长有没有类似经验?读芯片ID的,或者说,芯片在什么情况下,坏了还是ID易失?
回复

使用道具 举报

10

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2014-12-10
在线时间
46 小时
 楼主| 发表于 2015-1-1 22:57:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
是我自己画的板子。我们用的程序,前几天都可以的,但今天一直读不出它的ID,我以为是新焊的板子焊得不好,重新焊了几块,还是不行,拿出老的板子来试,也是不行。想问一下,站长有没有类似经验?读芯片ID的,或者说,芯片在什么情况下,坏了还是ID易失?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-1-1 23:05:53 | 显示全部楼层
回复【4楼】Thaojer:
---------------------------------
都有可能。
得慢慢检查了,先查硬件了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-2-12
在线时间
7 小时
发表于 2015-4-21 19:02:46 | 显示全部楼层
回复【6楼】Thaojer:
---------------------------------
我也遇到了这样的问题,但我的I2C初始化就是照抄的为啥不行呢?
回复

使用道具 举报

43

主题

152

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-8-11
在线时间
57 小时
发表于 2015-4-27 16:53:08 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我的adxl345读器件id的时候错误,我查了一下,他读出来的值是0xff,怎么会这样
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-4-28 00:36:35 | 显示全部楼层
回复【8楼】miss_lion:
---------------------------------
慢慢调试下吧,最好有示波器可以看看波形就比较有谱。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2014-2-18
在线时间
12 小时
发表于 2016-4-6 21:24:38 | 显示全部楼层
我也出现了这个问题,有时候ok的,前一天调试好,然后··隔天再试就不行了,
回复

使用道具 举报

10

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2014-12-10
在线时间
46 小时
 楼主| 发表于 2016-4-14 10:09:00 | 显示全部楼层
hugo01chen 发表于 2016-4-6 21:24
我也出现了这个问题,有时候ok的,前一天调试好,然后··隔天再试就不行了,

之前是I2C没设置好,后来我设置好I2C就好了,也可能是你的芯片没焊好
回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2014-2-18
在线时间
12 小时
发表于 2016-4-21 11:35:01 | 显示全部楼层
Thaojer 发表于 2016-4-14 10:09
之前是I2C没设置好,后来我设置好I2C就好了,也可能是你的芯片没焊好

是的,后来重新焊接了下,··搞定
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-3-11
在线时间
3 小时
发表于 2016-5-2 20:12:26 | 显示全部楼层
正点原子 发表于 2015-1-1 23:05
回复【4楼】Thaojer:
---------------------------------
都有可能。
得慢慢检查了,先查硬件了。

请问原子大哥,ADXL345可以不读取器件ID吗?每次读取ID都失败,并且不知道读回来的是多少,想把这个函数去掉,可以吗?
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-3-11
在线时间
3 小时
发表于 2016-5-2 23:08:51 | 显示全部楼层
Thaojer 发表于 2015-1-1 21:20
回复【5楼】正点原子:
---------------------------------
问题解决了,谢谢原子哥,错在I2C的初始化上。

你好,我现在也是同样的饿问题,读取ID时没法进入if,读取错误,请问你是怎么解决的?
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2016-10-26
在线时间
23 小时
发表于 2016-11-7 11:45:36 | 显示全部楼层
你好 ,我也是这个IF()进不去,我读取        abc=ADXL345_RD_Reg(DEVICE_ID);
        printf( "%c", abc );,又打印 ,可是不出来数?不知道怎么办了
回复

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2018-1-13
在线时间
4 小时
发表于 2016-11-16 14:15:46 | 显示全部楼层
原子哥,我ADXL345_Init是成功的,但读DeviceID不是0xE5,读到的是0xFF。而且无论怎么碰传感器,都输出的加速度都不变化.我看了下寄存器0x32-0x37.输出时,x=0,z=0;y的高位和低位时536871168~这怎么可能呢,明显大于8位啊~
在线等,挺急的
回复

使用道具 举报

cyd0609 该用户已被删除
发表于 2017-3-24 15:04:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

huangxuemeng 该用户已被删除
发表于 2017-3-26 20:46:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

6

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
金钱
320
注册时间
2017-10-14
在线时间
80 小时
发表于 2017-11-27 22:34:33 | 显示全部楼层
顶一下
回复

使用道具 举报

11

主题

52

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-2-4
在线时间
26 小时
发表于 2018-2-25 12:52:27 | 显示全部楼层
楼主请问你关于adxl345这个传感器成功了吗,我的还没成功,不知道你有没有亲测可用的程序,可以给我一份。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-4-19
在线时间
0 小时
发表于 2018-4-20 11:33:43 | 显示全部楼层
adxl345 发表于 2018-2-25 12:52
楼主请问你关于adxl345这个传感器成功了吗,我的还没成功,不知道你有没有亲测可用的程序,可以给我一份。

请问你初始化adxl345成功了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 00:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表