1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Hi,
目前我在调试adxl362 gsensor,使用的蓝牙平台(Nordic nRF52832)。 驱动我使用的是官网下载的adxl362_generic.zip。 SPI的驱动已经实现,读写数据没有问题。 我读了下面的三个寄存器,读出来的值和SPEC上是一样的。 ADXL362_GetRegisterValue(®Value, ADXL362_REG_DEVID_AD, 1);-----0xAD ADXL362_GetRegisterValue(®Value, ADXL362_REG_DEVID_MST, 1);----0x1D ADXL362_GetRegisterValue(®Value, ADXL362_REG_PARtiD, 1); -----0xF2 初始化流程: ADXL362_Init(); ADXL362_SetPowerMode(1); ADXL362_SetRange(ADXL362_RANGE_2G);//2G ADXL362_SetOutputRate(ADXL362_ODR_50_HZ); 然后我创建了一个20ms的timer,不停的获取加速度数据 err_code = app_timer_create(&ADXL362_TIMER_STEP_CLOCK, APP_TIMER_MODE_REPEATED, timer_step_event_handler); err_code = app_timer_start(ADXL362_TIMER_STEP_CLOCK, ADXL362_STEP_INTERVAL, NULL);------启动timer,每隔20ms运行一次 timer的处理函数如下: void timer_step_event_handler(void* p_context) { short x,y,z; ADXL362_GetXyz(&x, &y, &z); printf("x = %d, y = %d, z = %drn",x, y, z); } 目前发现x y z轴的数据有些不正确, 特别是z轴的数据 这个是正面的数据,超过1000了。 x = 105, y = 39, z = 1305 x = 103, y = 33, z = 1318 x = 88, y = 19, z = 1311 x = 96, y = 28, z = 1299 x = 103, y = 31, z = 1302 x = 103, y = 22, z = 1307 x = 103, y = 25, z = 1308 x = 103, y = 33, z = 1304 下面是反面的数据,但是一直都是-700多。 x = 67, y = 44, z = -765 x = 76, y = 44, z = -770 x = 76, y = 44, z = -770 x = 65, y = 48, z = -775 x = 64, y = 46, z = -770 x = 65, y = 44, z = -773 y轴的数据和datasheet描述的+-反了。 按照datasheet,这个y轴的数据应该是-的。(目前发现是中文datasheet和英文datasheet描述冲突) x = -65, y = 1080, z = 182 x = -66, y = 1080, z = 179 x = -64, y = 1080, z = 179 x = -64, y = 1080, z = 179 x = -64, y = 1080, z = 179 x = -64, y = 1084, z = 184 x = -64, y = 1081, z = 183 x = -64, y = 1080, z = 179 按照datasheet,此时y轴的数据应该是+的。 x = 46, y = -1152, z = 204 x = 48, y = -1152, z = 206 x = 46, y = -1149, z = 204 x = 47, y = -1149, z = 207 x = 39, y = -1149, z = 207 x = 39, y = -1151, z = 207 x = 39, y = -1149, z = 209 x轴数据+-按照datasheet也反了。 此时数据按照datasheet应该是+的。(目前发现是中文datasheet和英文datasheet描述冲突) x = -1049, y = 30, z = 217 x = -1047, y = 30, z = 217 x = -1049, y = 28, z = 219 x = -1049, y = 24, z = 216 x = -1045, y = 19, z = 217 此时的数据按照datasheet应该是-的。 x = 1000, y = -58, z = 136 x = 999, y = -57, z = 140 x = 1001, y = -61, z = 136 x = 1001, y = -58, z = 134 x = 999, y = -57, z = 140 x = 1003, y = -57, z = 136 x = 1000, y = -57, z = 143 x = 999, y = -57, z = 140 |
|
相关推荐
1 条评论
2个回答
|
|
关于X轴和Y轴数据+-反了的问题,主要是因为中文和英文的datasheet有冲突。
按照英文的datasheet http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL362.pdf 数据值的+-应该是对的。 按照中的datasheet,描述正好和英文的相反。 http://www.analog.com/media/cn/technical-documentation/data-sheets/ADXL362_cn.pdf 目前的问题主要是不太理解为什么Z轴的数据为什么 正面是 1300多,而反面的数据至于-700 或者-800多? 这个应该如何调整? |
|
|
|
从你的描述看器件工作正常,Z轴输出不是理想的1000mg是由offset引起的。这个offset一般包含2-3个部分。
1. 器件本身的offset 2. 焊接不平造成的offset 3. 装配误差。 |
|
|
|
只有小组成员才能发言,加入小组>>
996 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1389 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1940 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4272 浏览 2 评论
9063 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1535浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1695浏览 2评论
996浏览 2评论
1674浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1389浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 01:54 , Processed in 0.973542 second(s), Total 91, Slave 71 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号