关于ADXL345角度传感器

2019-03-24 09:23发布

最近发现手头有个角度传感器,就拿出来倒腾一下。单片机  MSP43FR5969
角度传感器ADXL345

首先通过I2C读取  ADXL345的设备ID
uchar buf[10];
#define ADXL345_ADDRESS         0xA6
#define ADXL345_DEVID            0x00//设备地址存放寄存器
#define ADXL345_ID                0xE5

void  Read_DEVID()
{
  Multiple_readI2C(ADXL345_ADDRESS,&buf[9],ADXL345_DEVID ,1);

  if (buf[9]==ADXL345_ID)
    /*此处设置断点,查看BUF*/
  printf("读取ADXL345地址成功%d ",buf[9]);
  else
    printf("读取ADXL345地址出错%d,读取地址为%d ",(char)ADXL345_ID,buf[9]);

}

程序运行到断点处,查看buf效果如图:
为甚么buf[9]没有数值??
查看memory发现buf[9]的数值确实为e5.
但是用printf输出buf[9],的数值确实‘读取ADXL345地址成功-15482’


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
lcofjp
1楼-- · 2019-03-24 11:22
< 罪魁祸首是%d吧,你改成(int)buf【9】应该就可以了。
568760310
2楼-- · 2019-03-24 14:41
 精彩回答 2  元偷偷看……
lcofjp
3楼-- · 2019-03-24 18:14
568760310 发表于 2016-4-30 20:20
不对啊,改成   printf("读取ADXL345地址成功%d ",(int)buf[9]);
也不对。
奇怪的是,为什么调试的时 ...

那输出是多少了?
lcofjp
4楼-- · 2019-03-25 00:13
我觉得你最好用%x格式打印,便于二进制分析。
王府井的青蛙
5楼-- · 2019-03-25 05:32
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章