ADXL345加速度传感器计步数算法程序求解

2019-07-21 08:46发布

本帖最后由 ygxdh 于 2017-4-9 22:27 编辑

最近,小白在弄ADXL345加速度传感器计步数,发现ADI上面有这方面算法的介绍http://www.analog.com/cn/analog- ... igital-acceler.html主要有数字滤波,动态阈值,峰值检测等内容。自己也结合着网上和原子哥提供的一些代码弄了一下。但是用串口调试助手调试,还是有问题step,直接从0跳到33。。。。求论坛大神辅助小弟一下
下面是我最近编写的代码 ADX345加速度传感器.zip (4.41 MB, 下载次数: 356) 2017-4-9 22:22 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
ygxdh
1楼-- · 2019-07-21 10:19
自己最后参考51黑论坛里面大神的代码,基本在STM32中实现了计步功能。如下文件为该论坛里面下载的源代码,只要把step_counter()函数移植到STM32中就好啦,其余的读取加速度值和IIC通讯较为简单,可以直接参考其他内容编写。
ygxdh
2楼-- · 2019-07-21 10:40
这是我用串口调试助手调试出来结果,求助大神呀
正点原子
3楼-- · 2019-07-21 10:59
帮顶
tanghaideng10
4楼-- · 2019-07-21 13:07
                     for(i=0;i<33;i++)
                   {
                            printf(" X:%d ", axis_converted_avg[i].X);         //2aê&#212;&#188;ó&#203;ù&#182;è&#214;μ
                        }                                                      
                   ADX_GetXYZDataNEW(&Xval1, &Yval1, &Zval1,buf);
           for(j=0;j<33;j++)
                                        {
                                                ADXL345_STEPCOUNT(buf[i]);
                                               
                                        }
          printf(" step:%d ", g_step_count);   //′
改为
                     for(i=0;i<33;i++)
                   {
                            printf(" X:%d ", axis_converted_avg[i].X);         //2aê&#212;&#188;ó&#203;ù&#182;è&#214;μ
                        }                                                      
                   ADX_GetXYZDataNEW(&Xval1, &Yval1, &Zval1,buf);
           for(j=0;j<33;j++)
                                        {
                                                ADXL345_STEPCOUNT(buf[i]);
                                                printf(" step:%d ", g_step_count);   //
                                        }
试试看
ygxdh
5楼-- · 2019-07-21 15:02
 精彩回答 2  元偷偷看……
小小怪
6楼-- · 2019-07-21 16:36
ygxdh 发表于 2017-4-10 17:22
我又看了一下,如果把printf(" step:%d ", g_step_count);放进去是这样的结果。 应该说明程序是运行 ...

用定时器计时就好

一周热门 更多>