找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ADXL345+STM32的智能运动手环程序+原理图设计

[复制链接]
跳转到指定楼层
楼主
基于STM32的智能运动手环原理图:


单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include <stdio.h>
  6. #include "timer.h"
  7. #include "key.h"
  8. #include "exti.h"
  9. #include "adxl345.h"
  10. #include "lcd1602.h"
  11. #include "ds18b20.h"

  12. unsigned char ReadAdxl345;           //定时读取adxl345数据
  13. unsigned char ErrorNum=0;   //记录错误次数
  14. unsigned char CheckNum=0;   //检测次数
  15.          
  16. char dis0[16];//液晶数组显示暂存
  17. char dis1[35];

  18. unsigned int xlTab[5];//心率数组
  19. unsigned char count=0;        //心率滤波计数
  20. unsigned int xinLater=0;//        心率延时处理
  21. unsigned int xinLv =0;    //心率值

  22. unsigned int BuShu=0;//步数
  23. unsigned int Normal_num=0;                        //正常次数
  24. unsigned int Error_num=0;                        //倾斜次数

  25. unsigned int disBuShu = 0;  //显示步数
  26. float disJuLi = 0;//显示距离
  27. float temperature;  //温度
  28. unsigned char readTemp = 0;        //读取温度标志

  29. int main(void)
  30. {
  31.         delay_init();                     //延时函数初始化         
  32.         uart_init(9600);                 //串口初始化为9600
  33.   TIM3_Int_Init(49,7199);//50ms         
  34.         EXTIX_Init();                // 初始化外部中断
  35.         LED_Init();                                  //初始化与LED连接的硬件接口
  36.         KEY_Init();                        //初始化按键

  37.         Lcd_GPIO_init();  //初始化lcd引脚
  38.         Lcd_Init();                  //初始化lcd屏幕
  39.         delay_ms(200);
  40.          
  41.   Init_ADXL345();
  42.   if(Single_Read_ADXL345(0X00)==0xe5)        
  43.   {
  44.     delay_ms(5);
  45.   }
  46.   else
  47.   {
  48.     delay_ms(3);
  49.   }
  50.          
  51.         while(1)
  52.         {

  53.     if(ReadAdxl345== 1)   //定时读取adxl345数据
  54.     {
  55.       ReadAdxl345= 0;
  56.       ReadData_x();                                                  //三轴检测函数
  57.       CheckNum++;
  58.       if((temp_Y>450)||(temp_Y<-450)) //查看正常次数     
  59.       {
  60.         Normal_num++;  //正常次数++
  61.       }
  62.       else
  63.       {
  64.         Error_num++;//倾斜次数
  65.       }
  66.       if((Error_num!=0)&&(Normal_num!=0))//检测到步数
  67.       {
  68.                                 BuShu++;   //步数脉冲量++
  69.         Error_num=0;    //清除一个周期检测
  70.         Normal_num=0;
  71.       }
  72.     }
  73.                
  74.                 if(disFlag==1)           //显示标志
  75.                 {
  76.                         disFlag = 0;

  77.                         readTemp++;  //定时计数
  78.                         if(readTemp >= 8)//约800ms处理一次数据 温度
  79.                         {
  80.                                 readTemp =0;//重新计数
  81.                                 temperature=(float)DS18B20_Get_Temp()/10;        //缩小10倍为实际值                        
  82.                         }
  83.                                                 
  84.                         disBuShu = BuShu/2;  //显示步数
  85.                         disJuLi = disBuShu*0.45;//显示距离
  86.                         
  87.                         sprintf(dis0,"X:%03d/min %4.1f C",xinLv,temperature);//打印
  88.                         Lcd_Puts(0,0,(unsigned char *)dis0);        //显示
  89.                         Lcd_1Put(14,0,0xdf);//显示符号
  90.                         sprintf(dis1,"BS:%03d JL:%4.1fm  ",disBuShu,disJuLi);//打印
  91.                         Lcd_Puts(0,1,(unsigned char *)dis1);        //显示
  92.         
  93.                 }        
  94.         }                                                                                            
  95. }        
复制代码

所有资料51hei提供下载:
原理图.zip (98.08 KB, 下载次数: 98)
stm32-35、程序及功能.7z (200.08 KB, 下载次数: 127)



评分

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

查看全部评分

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

使用道具 举报

沙发
ID:569729 发表于 2020-5-24 14:04 | 只看该作者
你好,想问一下脉搏传感器的输出接LM393的反相器的负端,即2管脚可以吗
回复

使用道具 举报

板凳
ID:295874 发表于 2020-5-25 20:08 | 只看该作者
请问图中的脉搏传感器型号具体是哪一款?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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