OpenEdv-开源电子网

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

买了一个十轴的模块,应该如何使用才能读取数据

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-4-22
在线时间
16 小时
发表于 2019-6-28 09:53:18 | 显示全部楼层 |阅读模式
5金钱

复制代码


IIC时序模拟参考了原子的例程,仅作修改引脚,这方面应该没多大问题,就不贴代码了

  1. void ShortToChar(short sData,unsigned char cData[])
  2. {
  3.         cData[0]=sData&0xff;
  4.         cData[1]=sData>>8;
  5. }
  6. short CharToShort(unsigned char cData[])
  7. {
  8.         return ((short)cData[1]<<8)|cData[0];
  9. }

  10.   
  11. int main(void)
  12. {
  13.         unsigned char chrTemp[30];
  14.         unsigned char str[100];
  15.         float a[3],w[3],h[3],Angle[3];
  16.        
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  18.         delay_init(168);  //初始化延时函数
  19.         uart_init(115200);                //初始化串口波特率为500000
  20.        
  21.         LCD_Init();                                        //LCD初始化
  22.         JY901b_Init();
  23.        
  24.         POINT_COLOR=RED;//设置字体为红色
  25.        

  26.         while(1)
  27.         {
  28.                 delay_ms(100);
  29.                
  30.                 IICreadBytes(0x50, AX, 24,&chrTemp[0]);
  31.                
  32.                 a[0] = (float)CharToShort(&chrTemp[0])/32768*16;
  33.                 a[1] = (float)CharToShort(&chrTemp[2])/32768*16;
  34.                 a[2] = (float)CharToShort(&chrTemp[4])/32768*16;
  35.                
  36.                 w[0] = (float)CharToShort(&chrTemp[6])/32768*2000;
  37.                 w[1] = (float)CharToShort(&chrTemp[8])/32768*2000;
  38.                 w[2] = (float)CharToShort(&chrTemp[10])/32768*2000;
  39.                
  40.                 h[0] = CharToShort(&chrTemp[12]);
  41.                 h[1] = CharToShort(&chrTemp[14]);
  42.                 h[2] = CharToShort(&chrTemp[16]);
  43.                
  44.                 Angle[0] = (float)CharToShort(&chrTemp[18])/32768*180;
  45.                 Angle[1] = (float)CharToShort(&chrTemp[20])/32768*180;
  46.                 Angle[2] = (float)CharToShort(&chrTemp[22])/32768*180;
  47.                
  48.                 sprintf((char *)str,"0X50:a:%.3f %.3f %.3f \r\n",a[0],a[1],a[2]);
  49.                 LCD_ShowString(30,200,200,16,16,str);
  50.                
  51.                 sprintf((char *)str,"0X50:w:%.3f %.3f %.3f \r\n",w[0],w[1],w[2]);
  52.                 LCD_ShowString(30,220,200,16,16,str);
  53.                
  54.                 sprintf((char *)str,"0X50:h:%.0f %.0f %.0f \r\n",h[0],h[1],h[2]);
  55.                 LCD_ShowString(30,240,200,16,16,str);
  56.                
  57.                 sprintf((char *)str,"0X50:Angle:%.3f %.3f %.3f \r\n",Angle[0],Angle[1],Angle[2]);
  58.                 LCD_ShowString(30,260,200,16,16,str);
  59.                
  60.                
  61.        
  62.         }       
  63.                
  64. }
复制代码
主函数参考了厂家例程,我在此基础上添加了LCD显示
0X50是模块地址,AX指向X轴加速度寄存器地址
最后在探索者开发板上显示的数据全部是000000000
我觉得思路应该是对的,请大神帮忙看看是哪里出了差错,谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-6-29 02:51:53 | 显示全部楼层
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-4-22
在线时间
16 小时
 楼主| 发表于 2019-7-1 10:01:51 | 显示全部楼层

那个售后客服像机器人一样,只会让我参考例程
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-7-2 02:18:17 | 显示全部楼层
woshilaixuexide 发表于 2019-7-1 10:01
那个售后客服像机器人一样,只会让我参考例程

退货哦
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-4-22
在线时间
16 小时
 楼主| 发表于 2019-7-2 10:10:55 | 显示全部楼层

其实我比较想学的是读取模块的思路,不只是针对某一个模块
类似于
配置IIC-初始化-发送模块地址-发送寄存器地址-读取原始数据-数据转换-输出
这么一个流程
大体上是懂了,某些细节不理解,得不到解答所以才想上来问问的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-15 05:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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