找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5118|回复: 7
打印 上一主题 下一主题
收起左侧

在串口上测得ADXL345的值 附stm32源码

  [复制链接]
跳转到指定楼层
楼主
ID:321034 发表于 2018-8-4 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在I2C的基础上,添加ADXL345的模块,然后在添加打印模块, 可以调试出ADXL345的值

单片机源程序如下:
  1. # include "sys.h"
  2. # include "delay.h"
  3. # include "printf.h"
  4. # include "adxl345.h"
  5. # include "usart.h"
  6. # include "led.h"
  7. # include "key.h"
  8. # include "math.h"

  9. void Delay (u32 i)
  10. {
  11.         while(i--);
  12. }
  13.                                                                        
  14. int main(void)
  15. {               
  16.         u8 key;
  17.         u8 t=0;
  18.         short x,y,z;              
  19.         short angx,angy,angz;              

  20.         delay_init();                            //延时初始化
  21.         LED_Init();                                  //初始化与LED连接的硬件接口
  22.         KEY_Init();                                //按键初始化
  23.         printf_init();
  24.         I2C_INIT();

  25.         while(ADXL345_Init())
  26.         {
  27.                 printf(" 加速度传感器错误!\r\n");
  28.                 delay_ms(100);
  29.         }
  30.         while(1)
  31.         {                              
  32.         if(t%10==0)//每100ms读取一次
  33.                 {
  34.                         //得到X,Y,Z轴的加速度值(原始值)
  35.                           ADX_GetXYZ_Value(&x, &y,&z);        //读取X,Y,Z三个方向的加速度值
  36.                        
  37.                           printf("x:%d \n",x);                //显示加速度原始值
  38.                                 printf("y: %d \n",y);
  39.                                 printf("z: %d \r\n",z);
  40.                           
  41.                        
  42.                         //得到角度值,并显示
  43.                         angx=ADXL345_Get_Angle(x,y,z,1);   
  44.                         angy=ADXL345_Get_Angle(x,y,z,2);   
  45.                         angz=ADXL345_Get_Angle(x,y,z,0);
  46.                         printf(" 角度x:%d\r\n",angx);                //显示角度值
  47.                         printf(" 角度y:%d\r\n",angy);
  48.                         printf(" 角度z:%d\r\n",angz);
  49.                         Delay(6000000);
  50.                 }
  51.                 key=KEY_Scan(0);
  52.                 if(key==KEY_UP)
  53.                 {
  54.                         LED1=0;//绿灯亮,提示校准中
  55.                         ADXL345_AUTO_Adjust(&x, &y, &z);//自动校准
  56.                         LED1=1;//绿灯灭,提示校准完成
  57.                 }
  58.                  delay_ms(10);
  59.                 t++;
  60.                 if(t==20)
  61.                 {
  62.                         t=0;
  63.                         LED0=!LED0;
  64.                 }
  65.         }
  66. }
复制代码

所有资料51hei提供下载:
ADXL345打印.rar (286.76 KB, 下载次数: 238)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:68814 发表于 2019-5-9 17:06 | 只看该作者
5分  有点多啊
回复

使用道具 举报

板凳
ID:521503 发表于 2019-7-20 20:28 | 只看该作者
连接上硬件之后,串口一直显示加速度传感器错误,是怎么情况啊
回复

使用道具 举报

地板
ID:129716 发表于 2019-8-15 22:20 | 只看该作者
晓风/残月 发表于 2019-7-20 20:28
连接上硬件之后,串口一直显示加速度传感器错误,是怎么情况啊

我也是
回复

使用道具 举报

5#
ID:632085 发表于 2019-10-30 15:22 | 只看该作者
非常感谢
回复

使用道具 举报

6#
ID:316613 发表于 2020-4-3 16:35 | 只看该作者
我也是,不好用啊
回复

使用道具 举报

7#
ID:58713 发表于 2021-7-23 08:23 | 只看该作者
代码不能用的,经过Debug调试,发现数据都没从上层函数传上来。新手谨慎下载。
回复

使用道具 举报

8#
ID:208271 发表于 2024-3-21 14:46 | 只看该作者
345模块接了 PB10 PB11 3.3V GND,一直无法初始化模块。不知道有线没接,还是程序有问题
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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