• 大小: 4.12MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-17
  • 语言: C/C++
  • 标签:

资源简介

利用GY25Z传感器和STM32单片机实现计步功能,代码采用C语言编写。

资源截图

代码片段和文件信息

#include “Header.h“

u8  GY25Z_RX_BUF[GY25Z_REC_LEN];//接收缓冲最大USART_REC_LEN个字节
u16 GY25Z_RX_STA;//接收状态标记
u16 GY25Z_Len;//GY25Z模块接收到的数据长度
float ROLL_XYZ[3]={000};//XYZ轴分别对应当前的加速度

u32 IRQ_Time=0;//定时器中断计数
u32 Time=0;//时间计时
u8  Time_Flag=0;//计时标志
u8  T_HT_MT_S=0;//时间计时
u32 Step_Count_B=0;//上一时刻步数
u32 Step_Count=0;//记步数
float Step=1.0;//步距
u32 Distance=0;//行走路程
float Calories=0.0;//卡路里
float Calories_V=0.07;//卡路里消耗速率
u8  Status=1;//角度状态
u32 Fun_Sp=1;//功能指向
u8  Dis_Buff[6]={000000};//显示缓存

/******************计步函数*****************/
/*******************************************/
void JB(float Datau8 *Flagu32 *Count)
{
  if(Data>8&&(*Flag==0))
{
(*Count)++;
  *Flag=1;
}
if((Data<-8)&&(*Flag==1))
{
  (*Count)++;
*Flag=0;
}
}
/****************设置步距函数***************/
/*******************************************/
void Enter_Step(float *Step)
{
u8 buff[3]={000};

while(1)
{
if(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_14)==0)//数字加
{
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_14)==0);
(*Step)+=0.1;
if((*Step)>=9)
{
(*Step)=9;
}
}
else if(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_13)==0)//数字减
{
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_13)==0);
(*Step)-=0.1;
if((*Step)<=0)
{
(*Step)=0;
}
}
buff[0]=(u32)((*Step)*10)/10+‘0‘;//求步距个位
buff[1]=(u32)((*Step)*10)%10+‘0‘;//求步距小数点位
TFT_PutChar(1088 buff[0]REDBLACK);//TFT显示步距
TFT_PutChar(10104buff[1]REDBLACK);
if(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_11)==0)//确定
{
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_11)==0);
      break;
}
}
}

/****************清零步数函数***************/
/*******************************************/
void Liquidation_S(u32 *Value)
{
u32 Value_B=*Value;//暂存值

while(1)
{
if(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_14)==0)//清零
{
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_14)==0);
Value_B=*Value;//暂存步数数据
*Value=0;//清除步数
Step_Count_B=*Value;
TFT_PutString(400“ 00000步“REDBLACK);//清零显示
}
else if(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_13)==0)//恢复
{
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_13)==0);
*Value=Value_B;//恢复步数数据
}
Dis_Buff[0]=*Value/10000+‘0‘;//求步数万位
Dis_Buff[1]=*Value%10000/1000+‘0‘;//求步数千位
Dis_Buff[2]=*Value%10000%1000/100+‘0‘;//求步数百位
Dis_Buff[3]=*Value%10000%1000%100/10+‘0‘;//求步数十位
Dis_Buff[4]=*Value%10000%1000%100%10+‘0‘;//求步数个位
TFT_PutChar(408Dis_Buff[0]REDBLACK);//TFT显示步数
TFT_PutChar(4016Dis_Buff[1]REDBLACK);
TFT_PutChar(4024Dis_Buff[2]REDBLACK);
TFT_PutChar(4032Dis_Buff[3]REDBLACK);
TFT_PutChar(4040Dis_Buff[4]REDBLACK);

if(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_11)==0)//确定
{
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOBGPIO_Pin_11)==0);
      break;
}
}
}

/****************清零

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-02-06 17:09  计步器程序\APP\
     文件       14933  2018-02-06 17:09  计步器程序\APP\app.c
     文件         189  2016-11-24 22:52  计步器程序\APP\app.h
     文件          28  2016-11-24 22:43  计步器程序\APP\app_use.c
     文件         136  2016-11-24 22:53  计步器程序\APP\app_use.h
     目录           0  2018-02-03 15:22  计步器程序\CORE\
     文件       17273  2014-11-09 23:49  计步器程序\CORE\core_cm3.c
     文件       85714  2014-11-09 23:49  计步器程序\CORE\core_cm3.h
     目录           0  2018-02-03 15:22  计步器程序\CORE\startup\
     文件       15505  2016-12-02 23:31  计步器程序\CORE\startup\startup_stm32f10x_hd.s
     文件       12236  2009-04-06 10:30  计步器程序\CORE\startup\startup_stm32f10x_ld.s
     文件       12564  2009-04-06 10:30  计步器程序\CORE\startup\startup_stm32f10x_md.s
     文件      633941  2014-11-09 23:49  计步器程序\CORE\stm32f10x.h
     文件        3386  2014-11-09 23:50  计步器程序\CORE\stm32f10x_conf.h
     文件        4417  2016-11-25 08:33  计步器程序\CORE\stm32f10x_it.c
     文件        2086  2014-11-09 23:50  计步器程序\CORE\stm32f10x_it.h
     文件       36567  2016-10-11 22:11  计步器程序\CORE\system_stm32f10x.c
     文件        2096  2016-10-11 22:11  计步器程序\CORE\system_stm32f10x.h
     目录           0  2018-02-03 15:22  计步器程序\FATFS\
     文件        6505  2011-09-06 00:06  计步器程序\FATFS\00readme.txt
     文件        3974  2012-02-27 22:16  计步器程序\FATFS\diskio.c
     文件        2438  2015-10-21 14:05  计步器程序\FATFS\diskio.h
     文件      141694  2012-02-22 20:36  计步器程序\FATFS\ff.c
     文件       12358  2016-12-05 16:12  计步器程序\FATFS\ff.h
     文件        7519  2016-10-15 12:35  计步器程序\FATFS\ffconf.h
     文件         856  2010-04-24 23:45  计步器程序\FATFS\integer.h
     目录           0  2018-02-03 15:22  计步器程序\FATFS\option\
     文件      249488  2010-05-09 23:52  计步器程序\FATFS\option\cc932.c
     文件        5317  2016-09-30 12:56  计步器程序\FATFS\option\cc936.c
     文件      567684  2010-05-08 23:28  计步器程序\FATFS\option\cc949.c
     文件      450696  2010-04-29 17:38  计步器程序\FATFS\option\cc950.c
............此处省略204个文件信息

评论

共有 条评论

相关资源