亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版
標題:
STM32F1032ZET6+FDC2214實現手勢識別源程序
[打印本頁]
作者:
lanrui
時間:
2019-8-12 17:22
標題:
STM32F1032ZET6+FDC2214實現手勢識別源程序
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "timer.h"
#include "led.h"
#include "oled.h"
#include "fdc2214.h"
#include "McuDataSend.h"
#include "gesture.h"
float res0,res1,res2,res3;
float temp0,temp1,temp2,temp3;
//float learn_position1,learn_position2,learn_position3;
float learn_data1,learn_data2,learn_data3,learn_data4,learn_data5;
float a,aa; //中間變量
unsigned char pp[3]={1,2,3};
unsigned char bb[3]={1,2,3}; //bt
//unsigned char dd[5]={1,2,3,4,5};
float learn_position[3];
float learn_position_B[3]; //bt
u8 ac_a=0;
u8 ac_b=0;
//float learn_data[5];
u8 i,j; //循環
u8 flag_a=0;
u8 flag_b=0;
u8 save=0;
u8 on=0;
u8 mode=0;
u8 cmd=0;
u8 position=0;
u8 position_b=0;
u8 data=0;
void A();
void B();
void show_mode0();
void show_mode1();
void show_mode2();
void show_mode3();
void show_use();
void show_free();
void key_test();
void slect_mode();
//void lcd_show_test2();
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
delay_init(); //延時函數初始化
uart_init(9600); //串口初始化為115200
LED_Init();
show_mode0();
show_free();
while(FDC2214_Init());
// led=0;
delay_ms(100);
temp0 = Cap_Calculate(0);//讀取初始值
temp1 = Cap_Calculate(1);
temp2 = Cap_Calculate(2);
temp3 = Cap_Calculate(3);
TIM5_Ctrl_Init(2000-1,720-1);
while(1)
{
delay_ms(200);
lcd_show_test2();
lcd_show_test3();
slect_mode();
key_test();
}
}
void key_test()
{
if(cmd!=0)
{
// lcd_show_test();
switch(cmd)
{
case 1: mode=0;show_mode0();cmd=0;break;
case 2: mode=1;show_mode1();cmd=0;break;
case 3: mode=2;show_mode2();cmd=0;break;
case 4: mode=3;show_mode3();cmd=0;break;
case 5: on=1;show_use();A();cmd=0; break;
case 6: on=0;cmd=0;show_free(); break;
case 7: position=1;cmd=0; break;
case 8: position=2;cmd=0; break;
case 9: position=3;cmd=0; break;
case 10: data=1;cmd=0; break;
case 11: data=2;cmd=0; break;
case 12: data=3;cmd=0; break;
case 13: data=4;cmd=0; break;
case 14: data=5;cmd=0; break;
case 15: mode=4;A();B();cmd=0; break;
case 16: position_b=1;learn_position_B[0]=res1-temp1;cmd=0; break;
case 17: position_b=2;learn_position_B[1]=res1-temp1;cmd=0; break;
case 18: position_b=3;learn_position_B[2]=res1-temp1;B();cmd=0; break;
default: cmd=0; break;
}
}
}
void A()
{
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
if(learn_position[j]>learn_position[j+1])
{
a=learn_position[j];learn_position[j]=learn_position[j+1];learn_position[j+1]=a;
aa=pp[j];pp[j]=pp[j+1];pp[j+1]=aa;
}
}
}
}
void B()
{
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
if(learn_position_B[j]>learn_position_B[j+1])
{
a=learn_position_B[j];learn_position_B[j]=learn_position_B[j+1];learn_position_B[j+1]=a;
aa=bb[j];bb[j]=bb[j+1];bb[j+1]=aa;
}
}
}
}
void show_mode0()
{
printf("t7.txt=\"");
printf("-");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t8.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t9.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t10.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
void show_mode1()
{
printf("t7.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t8.txt=\"");
printf("-");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t9.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t10.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
void show_mode2()
{
printf("t7.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t8.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t9.txt=\"");
printf("-");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t10.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
void show_mode3()
{
printf("t7.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t8.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t9.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t10.txt=\"");
printf("-");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
void show_use()
{
printf("t12.txt=\"");
printf("-");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t13.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
void show_free()
{
printf("t12.txt=\"");
printf(" ");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
printf("t13.txt=\"");
printf("-");
printf("\"\"");
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
void slect_mode()
{
if(mode==0)
{
if(on==0)
{
if((res0-temp0)>1&&(res0-temp0)<6.5)
{
lcd_show_txt(1);
}
else if((res0-temp0)>6.5&&(res0-temp0)<9)
{
lcd_show_txt(2);
}
else if((res0-temp0)>9)
{
lcd_show_txt(3);
}
else
{
lcd_show_txt(0);
}
}
else
{
if((res0-temp0)>(learn_position[0]-1)&&(res0-temp0)<=(learn_position[0]+learn_position[1])/2)
{
lcd_show_txt(pp[0]);
}
else if((res0-temp0)>((learn_position[0]+learn_position[1])/2)&&(res0-temp0)<=((learn_position[1]+learn_position[2])/2))
{
lcd_show_txt(pp[1]);
}
else if((res0-temp0)>((learn_position[1]+learn_position[2])/2))
{
lcd_show_txt(pp[2]);
}
else
{
lcd_show_txt(0);
}
}
}
else if(mode==1)
{
if(on==0)
{
if((res0-temp0)>1&&(res0-temp0)<3.5)
{
lcd_show_num(1);
}
else if((res0-temp0)>3.5&&(res0-temp0)<5.5)
{
lcd_show_num(2);
}
else if((res0-temp0)>5.5&&(res0-temp0)<7)
{
lcd_show_num(3);
}
else if((res0-temp0)>7&&(res0-temp0)<8.5)
{
lcd_show_num(4);
}
else if((res0-temp0)>8.5)
{
lcd_show_num(5);
}
else
{
lcd_show_num(0);
}
}
else
{
if((res0-temp0)>(learn_data1-1)&&(res0-temp0)<=(learn_data1+learn_data2)/2)
{
lcd_show_num(1);
}
else if((res0-temp0)>(learn_data1+learn_data2)/2&&(res0-temp0)<=(learn_data2+learn_data3)/2)
{
lcd_show_num(2);
}
else if((res0-temp0)>(learn_data2+learn_data3)/2&&(res0-temp0)<=(learn_data3+learn_data4)/2)
{
lcd_show_num(3);
}
else if((res0-temp0)>(learn_data3+learn_data4)/2&&(res0-temp0)<=(learn_data4+learn_data5)/2)
{
lcd_show_num(4);
}
else if((res0-temp0)>(learn_data4+learn_data5)/2)
{
lcd_show_num(5);
}
else
{
lcd_show_num(0);
}
}
}
else if(mode==2)
{
if(position==1)
{
learn_position[0]=res0-temp0;
position=0;
}
else if(position==2)
{
learn_position[1]=res0-temp0;
position=0;
}
else if(position==3)
{
learn_position[2]=res0-temp0;
position=0;
}
else
{
position=0;
}
}
else if(mode==3)
{
if(data==1)
{
learn_data1=res0-temp0;
data=0;
}
else if(data==2)
{
learn_data2=res0-temp0;
data=0;
}
else if(data==3)
{
learn_data3=res0-temp0;
data=0;
}
else if(data==4)
{
learn_data4=res0-temp0;
data=0;
}
else if(data==5)
{
learn_data5=res0-temp0;
data=0;
}
else
{
data=0;
}
}
else
{
if((res0-temp0)>(learn_position[0]-(learn_position[1]-learn_position[0])/2)&&(res0-temp0)<=(learn_position[0]+learn_position[1])/2)
{
lcd_show_txt_ba(pp[0]);flag_a=1;
ac_a=pp[0];
}
else if((res0-temp0)>((learn_position[0]+learn_position[1])/2)&&(res0-temp0)<=((learn_position[1]+learn_position[2])/2))
{
lcd_show_txt_ba(pp[1]);flag_a=1;
ac_a=pp[1];
}
else if((res0-temp0)>((learn_position[1]+learn_position[2])/2))
{
lcd_show_txt_ba(pp[2]);flag_a=1;
ac_a=pp[2];
}
else
{
lcd_show_txt_ba(0);flag_a=0;
ac_a=0;
}
if((res1-temp1)>(learn_position_B[0]-(learn_position_B[1]-learn_position_B[0])/2)&&(res1-temp1)<=(learn_position_B[0]+learn_position_B[1])/2)
{
lcd_show_txt_bb(bb[0]);flag_b=1;
ac_b=bb[0];
}
else if((res1-temp1)>((learn_position_B[0]+learn_position_B[1])/2)&&(res1-temp1)<=((learn_position_B[1]+learn_position_B[2])/2))
{
lcd_show_txt_bb(bb[1]);flag_b=1;
ac_b=bb[1];
}
else if((res1-temp1)>((learn_position_B[1]+learn_position_B[2])/2))
{
lcd_show_txt_bb(bb[2]);flag_b=1;
ac_b=bb[2];
}
else
{
lcd_show_txt_bb(0);flag_b=0;
ac_b=0;
}
if(ac_a==0||ac_b==0)
{
lcd_show_win(0);
}
else
{
if((ac_a==1&&ac_b==2)||(ac_a==2&&ac_b==3)||(ac_a==3&&ac_b==1))
{
lcd_show_win(1);
}
else if((ac_a==1&&ac_b==3)||(ac_a==2&&ac_b==1)||(ac_a==3&&ac_b==2))
{
lcd_show_win(2);
}
else
{
lcd_show_win(3);
}
}
}
}
void TIM5_IRQHandler(void) //TIM5中斷
{
if(TIM5->SR&0X0001)//20ms定時中斷
{
res0 = Cap_Calculate(0);//采集數據
res1 = Cap_Calculate(1);
res2 = Cap_Calculate(2);
res3 = Cap_Calculate(3);
// Data_Send_Status(res,0,0);
// printf("%5d : %5d : %5d\r\n",res0,res1,res2);
// led=~led;
}
TIM5->SR&=~(1<<0); //中斷標志位清0,等待下一次中斷
}
復制代碼
全部資料51hei下載地址:
D題(1,2,3,4版)+battle完成 -.7z
(226.86 KB, 下載次數: 35)
2019-8-13 03:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1