资源简介
利用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个文件信息
评论
共有 条评论