找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2154|回复: 1
收起左侧

基于stm32+fdc2214的手势识别例程

[复制链接]
ID:478158 发表于 2019-9-6 17:38 | 显示全部楼层 |阅读模式
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "oled.h"
  6. #include "fdc2214.h"
  7. #include "key.h"
  8. #include "stm32f10x.h"
  9. #include "exti.h"



  10. void Sys_Init(void);
  11. int key;
  12. int DATA1,DATA2,DATA3,DATA4,DATA5,DATA6,DATA7,DATA8;
  13. int MOD;
  14. float res0,res1,res2,res3;
  15. float temp0,temp1,temp2,temp3;
  16. double shu0,shu1,shu2;
  17. double yi,er,san,si,wu;
  18. int caiquan1,caiquan2=0,caiquan3,huaquan1,huaquan2,huaquan3,huaquan4,huaquan5;

  19. int welcome(void);




  20. int main(void)
  21.         
  22. {        
  23.         
  24.         int i=1;
  25.         KEY_Init();
  26.   Sys_Init();
  27.         KEY_Scan(0);
  28.         EXTIX_Init();
  29.         while(1)
  30.         {
  31.                 if(MOD==1)//猜拳判决
  32.                 {
  33.          
  34.                         delay_ms(250);
  35.                         res0 = Cap_Calculate(0);//采集数据(原始数据)
  36.                         res0 = res0-temp0;//电容接口空载减掉初始值
  37.                
  38.                         OLED_Show16x16(30,0,81,0);//猜
  39.                         OLED_Show16x16(48,0,82,0);//拳
  40.                         OLED_Show16x16(66,0,87,0);//判
  41.                         OLED_Show16x16(84,0,88,0);//决
  42.                
  43. //                        OLED_Show16x16(0,2,45,0);//数
  44. //                        OLED_Show16x16(18,2,46,0);//值
  45. //                        OLED_Show16x16(36,2,18,0);//:
  46. //                        

  47.                         
  48.                         //清除上一屏显示内容
  49.                         //
  50. //                        OLED_Show16x16(72,4,0,0);//
  51. //                        OLED_Show16x16(0,6,0,0);//
  52. //                        OLED_Show16x16(18,6,0,0);//
  53. //                        OLED_Show16x16(36,6,0,0);//
  54. //                        OLED_Show16x16(54,6,0,0);//
  55. //                        OLED_Show16x16(72,6,0,0);//
  56. //                        OLED_Show16x16(90,6,0,0);//
  57. //                        OLED_Show16x16(108,6,0,0);//
  58. //                        OLED_Show16x16(116,6,0,0);//
  59. //                        
  60.                         
  61. //                        Oled_Printf_Float(60,3,res0,0);               
  62.                         //Oled_Printf_Float(32,5,res1,0);


  63.                         printf("CH0:%3.3f  \r\n",res0);
  64.                
  65.                                 
  66.                                 if(res0>5.5)
  67.                                 {
  68.                                         i=1;                  //布
  69.                                 }

  70.                                         if(res0>1.0&res0<4.0)
  71.                                         {
  72.                                                 i=3;               //剪刀
  73.                                         }
  74.                                  
  75.                                                 if(res0>4.70&res0<5.40)
  76.                                                 {
  77.                                                         i=2;               //石头
  78.                                                 }
  79.                                                                 if(res0<1.00)
  80.                                                                 {
  81.                                                                 i=4;             //清空
  82.                                                                 }

  83.                         
  84.                         switch(i)
  85.                         {
  86.                                 case 1:led3=0;
  87.                                                          led4=1;
  88.                                        led5=1;
  89.                                                          OLED_Show16x16(31,2,0,0);       //布
  90.                                                          OLED_Show16x16(31,4,0,0);
  91.                                                          OLED_Show16x16(47,2,111,0);         
  92.                                                          OLED_Show16x16(61,2,112,0);
  93.                                 
  94.                                                          OLED_Show16x16(47,4,113,0);       //布
  95.                                                          OLED_Show16x16(61,4,114,0);
  96.                                                          OLED_Show16x16(77,2,0,0);         
  97.                                                          OLED_Show16x16(77,4,0,0);break;
  98.                                 
  99.                                 case 2:led3=1;
  100.                                        led4=0;
  101.                                                          led5=1;
  102.                                                          OLED_Show16x16(31,2,95,0);         
  103.                                                          OLED_Show16x16(47,2,96,0);
  104.                                                          OLED_Show16x16(31,4,97,0);        
  105.                                                          OLED_Show16x16(47,4,98,0);//石
  106.                                 
  107.                                                          OLED_Show16x16(61,2,99,0);         
  108.                                                          OLED_Show16x16(77,2,100,0);
  109.                                                          OLED_Show16x16(61,4,101,0); //头   
  110.                                                          OLED_Show16x16(77,4,102,0);break;
  111.                                 
  112.                                 case 3:led3=1;
  113.                                        led4=1;
  114.                                                          led5=0;
  115.                                                          OLED_Show16x16(31,2,103,0);         
  116.                                                          OLED_Show16x16(47,2,104,0);
  117.                                                          OLED_Show16x16(31,4,105,0);        
  118.                                                          OLED_Show16x16(47,4,106,0);//剪
  119.                                 
  120.                                                          OLED_Show16x16(61,2,107,0);         
  121.                                                          OLED_Show16x16(77,2,108,0);
  122.                                                          OLED_Show16x16(61,4,109,0); //刀
  123.                                                          OLED_Show16x16(77,4,110,0);break;
  124.                                                          
  125.                                 case 4:led3=1;
  126.                                                          led4=1;
  127.                                                          led5=1;
  128.                                                          OLED_Show16x16(31,2,0,0);         //空
  129.                                                          OLED_Show16x16(47,2,0,0);
  130.                                                          OLED_Show16x16(31,4,0,0);         
  131.                                                          OLED_Show16x16(47,4,0,0);
  132.                                                          OLED_Show16x16(61,2,0,0);         //空
  133.                                                          OLED_Show16x16(77,2,0,0);
  134.                                                          OLED_Show16x16(61,4,0,0);         
  135.                                                          OLED_Show16x16(77,4,0,0);break;
  136.                         }
  137.                         
  138.                         
  139.                 }

  140.                 if(MOD==2)//划拳判决
  141.                 {
  142.                         delay_ms(250);
  143.                         res0 = Cap_Calculate(0);//采集数据(原始数据)
  144.                         res0 = res0-temp0;//电容接口空载减掉初始值
  145.                         
  146.                         
  147.                         OLED_Show16x16(30,0,83,0);//划
  148.                         OLED_Show16x16(48,0,84,0);//拳
  149.                         OLED_Show16x16(66,0,87,0);//判
  150.                         OLED_Show16x16(84,0,88,0);//决
  151.                         
  152. //                        OLED_Show16x16(0,2,45,0);//数
  153. //                        OLED_Show16x16(18,2,46,0);//值
  154. //                        OLED_Show16x16(36,2,18,0);//:
  155.                         
  156. //                Oled_Printf_Float(60,3,res0,0);               
  157.                         
  158. //                        OLED_Show16x16(36,4,56,0);//请
  159. //                        OLED_Show16x16(54,4,57,0);//将
  160. //                        OLED_Show16x16(72,4,58,0);//手
  161. //                        OLED_Show16x16(0,6,59,0);//放
  162. //                        OLED_Show16x16(18,6,60,0);//在
  163. //                        OLED_Show16x16(36,6,61,0);//传
  164. //                        OLED_Show16x16(54,6,62,0);//感
  165. //                        OLED_Show16x16(72,6,63,0);//器
  166. //                        OLED_Show16x16(90,6,64,0);//上

  167.                                         if(res0>2.00&res0<2.60)
  168.                                 {
  169.                                         i=1;
  170.                                 }
  171.                                         if(res0>3.00&res0<3.80)
  172.                                         {
  173.                                                 i=2;
  174.                                         }
  175.                                                 if(res0>3.90&res0<4.60)
  176.                                                 {
  177.                                                         i=3;
  178.                                                 }
  179.                                                         if(res0>5.00&res0<5.80)
  180.                                                         {
  181.                                                                 i=4;
  182.                                                         }
  183.                                                                 if(res0>6.00)
  184.                                                                 {
  185.                                                                         i=5;
  186.                                                                 }
  187.                                                                         if(res0<2.00)
  188.                                                                         {
  189.                                                                         i=6;
  190.                                                                         }

  191.                                        
  192.                                         switch(i)
  193.                                         {
  194.                                                 case 1:led3=0;
  195.                                                                          led4=1;
  196.                                                                          led5=1;
  197.                                                                          OLED_Show16x16(31,2,0,0);       //一
  198.                                                                          OLED_Show16x16(31,4,0,0);
  199.                                                                          OLED_Show16x16(47,2,121,0);         
  200.                                                                          OLED_Show16x16(61,2,122,0);
  201.                                                 
  202.                                                                          OLED_Show16x16(47,4,123,0);      
  203.                                                                          OLED_Show16x16(61,4,124,0);
  204.                                                                          OLED_Show16x16(77,2,0,0);         
  205.                                                                          OLED_Show16x16(77,4,0,0);break;
  206.                                 
  207.                                                 case 2:led3=1;
  208.                                                                          led4=0;
  209.                                                                          led5=1;
  210.                                                                          OLED_Show16x16(31,2,0,0);       //二
  211.                                                                          OLED_Show16x16(31,4,0,0);
  212.                                                                          OLED_Show16x16(47,2,125,0);         
  213.                                                                          OLED_Show16x16(61,2,126,0);
  214.                                                 
  215.                                                                          OLED_Show16x16(47,4,127,0);      
  216.                                                                          OLED_Show16x16(61,4,128,0);
  217.                                                                          OLED_Show16x16(77,2,0,0);         
  218.                                                                          OLED_Show16x16(77,4,0,0);break;
  219.                                                 case 3:led3=1;
  220.                                                                          led4=1;
  221.                                                                          led5=0;
  222.                                                                          OLED_Show16x16(31,2,0,0);       //三
  223.                                                                          OLED_Show16x16(31,4,0,0);
  224.                                                                          OLED_Show16x16(47,2,129,0);         
  225.                                                                          OLED_Show16x16(61,2,130,0);
  226.                                                 
  227.                                                                          OLED_Show16x16(47,4,131,0);      
  228.                                                                          OLED_Show16x16(61,4,132,0);
  229.                                                                          OLED_Show16x16(77,2,0,0);         
  230.                                                                          OLED_Show16x16(77,4,0,0);break;
  231.                                                 case 4:led3=0;
  232.                                                                          led4=0;
  233.                                                                          led5=1;
  234.                                                                          OLED_Show16x16(31,2,0,0);       //四
  235.                                                                          OLED_Show16x16(31,4,0,0);
  236.                                                                          OLED_Show16x16(47,2,133,0);         
  237.                                                                          OLED_Show16x16(61,2,134,0);
  238.                                                 
  239.                                                                          OLED_Show16x16(47,4,135,0);      
  240.                                                                          OLED_Show16x16(61,4,136,0);
  241.                                                                          OLED_Show16x16(77,2,0,0);         
  242.                                                                          OLED_Show16x16(77,4,0,0);break;
  243.                                                 case 5:led3=0;
  244.                                                                          led4=1;
  245.                                                                          led5=0;
  246.                                                                          OLED_Show16x16(31,2,0,0);       //五
  247.                                                                          OLED_Show16x16(31,4,0,0);
  248.                                                                          OLED_Show16x16(47,2,137,0);         
  249.                                                                          OLED_Show16x16(61,2,138,0);
  250.                                                 
  251.                                                                          OLED_Show16x16(47,4,139,0);      
  252.                                                                          OLED_Show16x16(61,4,140,0);
  253.                                                                          OLED_Show16x16(77,2,0,0);         
  254.                                                                          OLED_Show16x16(77,4,0,0);break;
  255.                                                 case 6:led3=1;
  256.                                                                          led4=1;
  257.                                                                          led5=1;
  258.                                                                          OLED_Show16x16(31,2,0,0);         //清空
  259.                                                                          OLED_Show16x16(47,2,0,0);
  260.                                                                          OLED_Show16x16(31,4,0,0);         
  261.                                                                          OLED_Show16x16(47,4,0,0);
  262.                                                                          OLED_Show16x16(61,2,0,0);         //清空
  263.                                                                          OLED_Show16x16(77,2,0,0);
  264.                                                                          OLED_Show16x16(61,4,0,0);         
  265.                                                                          OLED_Show16x16(77,4,0,0);break;
  266.                                         }
  267.                         }
  268.                         
  269.                 if(MOD==3)//猜拳训练
  270.                 {
  271.                                         res0 = Cap_Calculate(0);//采集数据(原始数据)
  272.                                         res0 = res0-temp0;//电容接口空载减掉初始值

  273.                                         OLED_Show16x16(30,0,81,0);//猜
  274.                                         OLED_Show16x16(48,0,82,0);//拳
  275.                                         OLED_Show16x16(66,0,52,0);//训
  276.                                         OLED_Show16x16(84,0,53,0);//练
  277.                                        
  278. //                                        OLED_Show16x16(0,2,45,0);//数
  279. //                                        OLED_Show16x16(18,2,46,0);//值
  280. //                                        OLED_Show16x16(36,2,18,0);//:
  281.                                        
  282. //               
  283. //                                        OLED_Show16x16(0,6,0,0);//
  284. //                                        OLED_Show16x16(18,6,0,0);//
  285. //                                        OLED_Show16x16(36,6,0,0);
  286. //                                        OLED_Show16x16(54,6,0,0);
  287. //                                        OLED_Show16x16(72,6,0,0);//
  288. //                                        OLED_Show16x16(90,6,0,0);//
  289. //                                        OLED_Show16x16(108,6,0,0);//
  290. //                                        OLED_Show16x16(116,6,0,0);//
  291. //                                       
  292.                                        
  293.         //                                Oled_Printf_Float(60,3,res0,0);               
  294.                                        
  295.                                        
  296.                                         if(caiquan2>0&caiquan2<21)     //石头
  297.                                                 { static int m=0;                                                
  298.                                                         m++;                                                                        
  299.                                                         if(m<21)
  300.                                                                 {                                                               
  301.                                                                 shu0=shu0+res0;
  302.                                                                 USART_SendData(USART1,caiquan2);               
  303.                                                                
  304.                                                                 }        
  305.                                                                
  306.                                                                 if(m>19)
  307.                                                                 {
  308.                                                                         shu0=shu0/20;
  309.                                                                 //        caiquan1=0;
  310.                                                                         led3=0;
  311.                                                                         delay_ms(500);
  312.                                                                         led3=1;
  313.                         //                                                USART_SendData(USART1,shu0);
  314.                                                                         m=0;
  315.                                                                         caiquan2=22;
  316.                                                                 }
  317.                                                 }
  318.                                         if(caiquan2>22&caiquan2<43)     //剪刀
  319.                                                 { static int n=0;                                                
  320.                                                         n++;                                                                        
  321.                                                         if(n<21)
  322.                                                                 {                                                               
  323.                                                                 shu1=shu1+res0;
  324.                                        
  325.                                                                 }        
  326.                                                                 if(n>19)
  327.                                                                 {
  328.                                                                         shu1=shu1/20;
  329.                                                                 //        caiquan2=0;
  330.                                                                         led4=0;
  331.                                                                         delay_ms(500);
  332.                                                                         led4=1;
  333.                                 //                                        USART_SendData(USART1,shu1);
  334.                                                                         n=0;
  335.                                                                         caiquan2=44;
  336.                                                                 }
  337.                                                         }
  338.                                         if(caiquan2>44&caiquan2<65)     //布
  339.                                                 { static int p=0;                                                
  340.                                                         p++;                                                                        
  341.                                                         if(p<21)
  342.                                                                 {                                                               
  343.                                                                 shu2=shu2+res0;
  344.                                 //                                USART_SendData(USART1,shu2);        
  345.                                                                 }        
  346.                                                                 if(p>19)
  347.                                                                 {
  348.                                                                         shu2=shu2/20;
  349.                                                                         
  350.                                                                         //caiquan3=0;
  351.                                                                         led5=0;
  352.                                                                         delay_ms(500);
  353.                                                                         led5=1;
  354.                                         //                                USART_SendData(USART1,shu2);
  355.                                                                         p=0;
  356.                                                                         caiquan2=0;
  357.                                                                 }
  358.                                                 }
  359.                                                                
  360.                         }               
  361.                 if(MOD==4)//划拳训练
  362.                 {

  363.                
  364.                                         res0 = Cap_Calculate(0);//采集数据(原始数据)
  365.                                         res0 = res0-temp0;//电容接口空载减掉初始值

  366.                                        
  367.         

  368.                                         OLED_Show16x16(30,0,70,0);//猜
  369.                                         OLED_Show16x16(48,0,71,0);//拳
  370.                                         OLED_Show16x16(66,0,52,0);//训
  371.                                         OLED_Show16x16(84,0,53,0);//练
  372. //                                       
  373. //                                        OLED_Show16x16(0,2,45,0);//数
  374. //                                        OLED_Show16x16(18,2,46,0);//值
  375. //                                        OLED_Show16x16(36,2,18,0);//:
  376. //                                       
  377. //               
  378. //                                        OLED_Show16x16(0,6,0,0);//
  379. //                                        OLED_Show16x16(18,6,0,0);//
  380. //                                        OLED_Show16x16(36,6,0,0);
  381. //                                        OLED_Show16x16(54,6,0,0);
  382. //                                        OLED_Show16x16(72,6,0,0);//
  383. //                                        OLED_Show16x16(90,6,0,0);//
  384. //                                        OLED_Show16x16(108,6,0,0);//
  385. //                                        OLED_Show16x16(116,6,0,0);//
  386. //                                       
  387.                                        
  388. //                                        Oled_Printf_Float(60,3,res0,0);               
  389.                                        
  390.                                        
  391.                                         if(caiquan3>0&caiquan3<21)     //一
  392.                                                 { static int a=0;                                                
  393.                                                         a++;                                                                        
  394.                                                         if(a<21)
  395.                                                                 {                                                               
  396.                                                                 yi=yi+res0;
  397.                                         //                        USART_SendData(USART1,caiquan2);               
  398.                                                                
  399.                                                                 }        
  400.                                                                
  401.                                                                 if(a>19)
  402.                                                                 {
  403.                                                                         yi=yi/20;
  404.                                                                 //        caiquan1=0;
  405.                                                                         led3=0;
  406.                                                                         delay_ms(500);
  407.                                                                         led3=1;
  408.                         //                                                USART_SendData(USART1,shu0);
  409.                                                                         a=0;
  410.                                                                         caiquan3=22;
  411.                                                                 }
  412.                                                 }
  413.                                         if(caiquan3>22&caiquan3<43)     //二
  414.                                                 { static int b=0;                                                
  415.                                                         b++;                                                                        
  416.                                                         if(b<21)
  417.                                                                 {                                                               
  418.                                                                 er=er+res0;
  419.                                        
  420.                                                                 }        
  421.                                                                 if(b>19)
  422.                                                                 {
  423.                                                                         er=er/20;
  424.                                                                 //        caiquan2=0;
  425.                                                                         led4=0;
  426.                                                                         delay_ms(500);
  427.                                                                         led4=1;
  428.                                 //                                        USART_SendData(USART1,shu1);
  429.                                                                         b=0;
  430.                                                                         caiquan3=44;
  431.                                                                 }
  432.                                                         }
  433.                                         if(caiquan3>44&caiquan3<65)     //三
  434.                                                 { static int c=0;                                                
  435.                                                         c++;                                                                        
  436.                                                         if(c<21)
  437.                                                                 {                                                               
  438.                                                                 san=san+res0;
  439.                                 //                                USART_SendData(USART1,shu2);        
  440.                                                                 }        
  441.                                                                 if(c>19)
  442.                                                                 {
  443.                                                                         san=san/20;
  444.                                                                         
  445.                                                                         //caiquan3=0;
  446.                                                                         led5=0;
  447.                                                                         delay_ms(500);
  448.                                                                         led5=1;
  449.                                         //                                USART_SendData(USART1,shu2);
  450.                                                                         c=0;
  451.                                                                         caiquan3=66;
  452.                                                                 }
  453.                                                 }
  454.                                                 if(caiquan3>66&caiquan3<87)     //四
  455.                                                 { static int d=0;                                                
  456.                                                         d++;                                                                        
  457.                                                         if(d<21)
  458.                                                                 {                                                               
  459.                                                                 si=si+res0;
  460.                                 //                                USART_SendData(USART1,shu2);        
  461.                                                                 }        
  462.                                                                 if(d>19)
  463.                                                                 {
  464.                                                                         si=si/20;
  465.                                                                         
  466.                                                                         //caiquan3=0;
  467.                                                                         led5=0;
  468.                                                                         delay_ms(500);
  469.                                                                         led5=1;
  470.                                         //                                USART_SendData(USART1,shu2);
  471.                                                                         d=0;
  472.                                                                         caiquan3=88;
  473.                                                                 }
  474.                                                 }
  475.                                                 if(caiquan3>88&caiquan3<109)     //五
  476.                                                 { static int e=0;                                                
  477.                                                         e++;                                                                        
  478.                                                         if(e<21)
  479.                                                                 {                                                               
  480.                                                                 wu=wu+res0;
  481.                                 //                                USART_SendData(USART1,shu2);        
  482.                                                                 }        
  483.                                                                 if(e>19)
  484.                                                                 {
  485.                                                                         wu=wu/20;
  486.                                                                         
  487.                                                                         //caiquan3=0;
  488.                                                                         led5=0;
  489.                                                                         delay_ms(500);
  490.                                                                         led5=1;
  491.                                         //                                USART_SendData(USART1,shu2);
  492.                                                                         e=0;
  493.                                                                         caiquan3=0;
  494.                                                                 }
  495.                                                 }
  496.                                        
  497.                 }
  498.                         
  499.                 if(MOD==5)//猜拳判决
  500.                 {

  501.          
  502.                         delay_ms(250);
  503.                         res0 = Cap_Calculate(0);//采集数据(原始数据)
  504.                         res0 =res0-temp0;//电容接口空载减掉初始值

  505.                         OLED_Show16x16(30,0,81,0);//猜
  506.                         OLED_Show16x16(48,0,82,0);//拳
  507.                         OLED_Show16x16(66,0,87,0);//判
  508.                         OLED_Show16x16(84,0,88,0);//决
  509.                         
  510. //                        
  511. //                        OLED_Show16x16(0,2,45,0);//数
  512. //                        OLED_Show16x16(18,2,46,0);//值
  513. //                        OLED_Show16x16(36,2,18,0);//:
  514. //                        

  515. //                        
  516. //                        //清除上一屏显示内容
  517. //                        //
  518. //                        OLED_Show16x16(72,4,0,0);//
  519. //                        OLED_Show16x16(0,6,0,0);//
  520. //                        OLED_Show16x16(18,6,0,0);//
  521. //                        OLED_Show16x16(36,6,0,0);//
  522. //                        OLED_Show16x16(54,6,0,0);//
  523. //                        OLED_Show16x16(72,6,0,0);//
  524. //                        OLED_Show16x16(90,6,0,0);//
  525. //                        OLED_Show16x16(108,6,0,0);//
  526. //                        OLED_Show16x16(116,6,0,0);//
  527. //                        

  528.                         
  529. //                        Oled_Printf_Float(60,3,res0,0);               
  530.                         //Oled_Printf_Float(32,5,res1,0);


  531. //                        printf("CH0:%3.3f  CH1:%3.3f \r\n",res0,res1);
  532.                

  533.                                 if(res0>shu2-0.50&res0<shu2+0.50)
  534.                                 {
  535.                                         i=1;
  536.                                 }

  537.                                         if(res0>shu1-0.50&res0<shu1+0.50)
  538.                                         {
  539.                                                 i=3;
  540.                                         }
  541.                                 
  542.                                                 if(res0>shu0-0.50&res0<shu0+0.50)
  543.                                                 {
  544.                                                         i=2;
  545.                                                 }

  546.                                                                 if(res0<0.50)
  547.                                                                 {
  548.                                                                 i=4;
  549.                                                                 }

  550.                         
  551.                         switch(i)
  552.                         {
  553.                                 case 1:led3=0;
  554.                                                          led4=1;
  555.                                        led5=1;
  556.                                                          OLED_Show16x16(31,2,0,0);       //布
  557.                                                          OLED_Show16x16(31,4,0,0);
  558.                                                          OLED_Show16x16(47,2,111,0);         
  559.                                                          OLED_Show16x16(61,2,112,0);
  560.                                 
  561.                                                          OLED_Show16x16(47,4,113,0);       //布
  562.                                                          OLED_Show16x16(61,4,114,0);
  563.                                                          OLED_Show16x16(77,2,0,0);         
  564.                                                          OLED_Show16x16(77,4,0,0);break;
  565.                                 
  566.                                 case 2:led3=1;
  567.                                        led4=0;
  568.                                                          led5=1;
  569.                                                          OLED_Show16x16(31,2,95,0);         
  570.                                                          OLED_Show16x16(47,2,96,0);
  571.                                                          OLED_Show16x16(31,4,97,0);        
  572.                                                          OLED_Show16x16(47,4,98,0);//石
  573.                                 
  574.                                                          OLED_Show16x16(61,2,99,0);         
  575.                                                          OLED_Show16x16(77,2,100,0);
  576.                                                          OLED_Show16x16(61,4,101,0); //头   
  577.                                                          OLED_Show16x16(77,4,102,0);break;
  578.                                 
  579.                                 case 3:led3=1;
  580.                                        led4=1;
  581.                                                          led5=0;
  582.                                                          OLED_Show16x16(31,2,103,0);         
  583.                                                          OLED_Show16x16(47,2,104,0);
  584.                                                          OLED_Show16x16(31,4,105,0);        
  585.                                                          OLED_Show16x16(47,4,106,0);//剪
  586.                                 
  587.                                                          OLED_Show16x16(61,2,107,0);         
  588.                                                          OLED_Show16x16(77,2,108,0);
  589.                                                          OLED_Show16x16(61,4,109,0); //刀
  590.                                                          OLED_Show16x16(77,4,110,0);break;
  591.                                                          
  592.                                 case 4:led3=1;
  593.                                                          led4=1;
  594.                                                          led5=1;
  595.                                                          OLED_Show16x16(31,2,0,0);         //空
  596.                                                          OLED_Show16x16(47,2,0,0);
  597.                                                          OLED_Show16x16(31,4,0,0);         
  598.                                                          OLED_Show16x16(47,4,0,0);
  599.                                                          OLED_Show16x16(61,2,0,0);         //空
  600.                                                          OLED_Show16x16(77,2,0,0);
  601.                                                          OLED_Show16x16(61,4,0,0);         
  602.                                                          OLED_Show16x16(77,4,0,0);break;
  603.                                 }
  604.                         
  605.                 }
  606.                         
  607.                
  608.                 if(MOD==6)//划拳判决
  609.                 {

  610.                         delay_ms(250);
  611.                         res0 = Cap_Calculate(0);//采集数据(原始数据)
  612.                         res0 = res0-temp0;//电容接口空载减掉初始值

  613.                         
  614.                         OLED_Show16x16(30,0,83,0);//划
  615.                         OLED_Show16x16(48,0,84,0);//拳
  616.                         OLED_Show16x16(66,0,87,0);//判
  617.                         OLED_Show16x16(84,0,88,0);//决
  618.                         
  619. //                        OLED_Show16x16(0,2,45,0);//数
  620. //                        OLED_Show16x16(18,2,46,0);//值
  621. //                        OLED_Show16x16(36,2,18,0);//:
  622. //                        

  623. //                        
  624. //                        //清除上一屏显示内容
  625. //                        //
  626. //                        
  627. //                        OLED_Show16x16(0,6,0,0);//
  628. //                        OLED_Show16x16(18,6,0,0);//
  629. //                        OLED_Show16x16(36,6,0,0);//
  630. //                        OLED_Show16x16(54,6,0,0);//
  631. //                        OLED_Show16x16(72,6,0,0);//
  632. //                        OLED_Show16x16(90,6,0,0);//
  633. //                        OLED_Show16x16(108,6,0,0);//
  634. //                        OLED_Show16x16(116,6,0,0);//
  635. //                        

  636. //                        
  637. //                        Oled_Printf_Float(60,3,res0,0);               
  638.                         //Oled_Printf_Float(32,5,res1,0);


  639.                         printf("CH0:%3.3f  CH1:%3.3f \r\n",res0,res1);
  640.                

  641.                                 if(res0>yi-0.3&res0<yi+0.3)//2.2   2.4
  642.                                 {
  643.                                         i=1;
  644.                                 }

  645.                                         if(res0>er-0.5&res0<er+0.3)//3.4   3.7
  646.                                         {
  647.                                                 i=2;
  648.                                         }
  649.                                 
  650.                                                 if(res0>san-0.3&res0<san+0.3)//4   4.5
  651.                                                 {
  652.                                                         i=3;
  653.                                                 }
  654.                                                 
  655.                                                         if(res0>si-0.5&res0<si+0.5)    //    5.8
  656.                                                         {
  657.                                                                 i=4;
  658.                                                         }
  659.                                                 
  660.                                                                 if(res0>wu-0.2)//5.8
  661.                                                                 {
  662.                                                                         i=5;
  663.                                                                 }

  664.                                                                         if(res0<1.0)
  665.                                                                         {
  666.                                                                         i=6;
  667.                                                                         }

  668.                         
  669.                                                 switch(i)
  670.                                                                 {
  671.                                                                         case 1:led3=0;
  672.                                                                                                  led4=1;
  673.                                                                                                  led5=1;
  674.                                                                                                  OLED_Show16x16(31,2,0,0);       //一
  675.                                                                                                  OLED_Show16x16(31,4,0,0);
  676.                                                                                                  OLED_Show16x16(47,2,121,0);         
  677.                                                                                                  OLED_Show16x16(61,2,122,0);
  678.                                                                         
  679.                                                                                                  OLED_Show16x16(47,4,123,0);      
  680.                                                                                                  OLED_Show16x16(61,4,124,0);
  681.                                                                                                  OLED_Show16x16(77,2,0,0);         
  682.                                                                                                  OLED_Show16x16(77,4,0,0);break;
  683.                                                         
  684.                                                                         case 2:led3=1;
  685.                                                                                                  led4=0;
  686.                                                                                                  led5=1;
  687.                                                                                                  OLED_Show16x16(31,2,0,0);       //二
  688.                                                                                                  OLED_Show16x16(31,4,0,0);
  689.                                                                                                  OLED_Show16x16(47,2,125,0);         
  690.                                                                                                  OLED_Show16x16(61,2,126,0);
  691.                                                                         
  692.                                                                                                  OLED_Show16x16(47,4,127,0);      
  693.                                                                                                  OLED_Show16x16(61,4,128,0);
  694.                                                                                                  OLED_Show16x16(77,2,0,0);         
  695.                                                                                                  OLED_Show16x16(77,4,0,0);break;
  696.                                                                         case 3:led3=1;
  697.                                                                                                  led4=1;
  698.                                                                                                  led5=0;
  699.                                                                                                  OLED_Show16x16(31,2,0,0);       //三
  700.                                                                                                  OLED_Show16x16(31,4,0,0);
  701.                                                                                                  OLED_Show16x16(47,2,129,0);         
  702.                                                                                                  OLED_Show16x16(61,2,130,0);
  703.                                                                         
  704.                                                                                                  OLED_Show16x16(47,4,131,0);      
  705.                                                                                                  OLED_Show16x16(61,4,132,0);
  706.                                                                                                  OLED_Show16x16(77,2,0,0);         
  707.                                                                                                  OLED_Show16x16(77,4,0,0);break;
  708.                                                                         case 4:led3=0;
  709.                                                                                                  led4=0;
  710.                                                                                                  led5=1;
  711.                                                                                                  OLED_Show16x16(31,2,0,0);       //四
  712.                                                                                                  OLED_Show16x16(31,4,0,0);
  713.                                                                                                  OLED_Show16x16(47,2,133,0);         
  714.                                                                                                  OLED_Show16x16(61,2,134,0);
  715.                                                                         
  716.                                                                                                  OLED_Show16x16(47,4,135,0);      
  717.                                                                                                  OLED_Show16x16(61,4,136,0);
  718.                                                                                                  OLED_Show16x16(77,2,0,0);         
  719.                                                                                                  OLED_Show16x16(77,4,0,0);break;
  720.                                                                         case 5:led3=0;
  721.                                                                                                  led4=1;
  722.                                                                                                  led5=0;
  723.                                                                                                  OLED_Show16x16(31,2,0,0);       //五
  724.                                                                                                  OLED_Show16x16(31,4,0,0);
  725.                                                                                                  OLED_Show16x16(47,2,137,0);         
  726.                                                                                                  OLED_Show16x16(61,2,138,0);
  727.                                                                         
  728.                                                                                                  OLED_Show16x16(47,4,139,0);      
  729.                                                                                                  OLED_Show16x16(61,4,140,0);
  730.                                                                                                  OLED_Show16x16(77,2,0,0);         
  731.                                                                                                  OLED_Show16x16(77,4,0,0);break;
  732.                                                                         case 6:led3=1;
  733.                                                                                                  led4=1;
  734.                                                                                                  led5=1;
  735.                                                                                                  OLED_Show16x16(31,2,0,0);         //清空
  736.                                                                                                  OLED_Show16x16(47,2,0,0);
  737.                                                                                                  OLED_Show16x16(31,4,0,0);         
  738.                                                                                                  OLED_Show16x16(47,4,0,0);
  739.                                                                                                  OLED_Show16x16(61,2,0,0);         //清空
  740.                                                                                                  OLED_Show16x16(77,2,0,0);
  741.                                                                                                  OLED_Show16x16(61,4,0,0);         
  742.                                                                                                  OLED_Show16x16(77,4,0,0);break;
  743.                                                                 }
  744.                
  745.                 }


  746.         }
  747. }





  748. void Sys_Init(void)

  749. {
  750.         delay_init();         
  751.         NVIC_Configuration();
  752.         uart_init(115200);         //串口波特率115200
  753.         LED_Init();
  754.         OLED_Init();
  755. //        printf("OLED OK\r\n");

  756.         OLED_Show16x16(14,0,115,0);
  757.         OLED_Show16x16(31,0,116,0);
  758.         OLED_Show16x16(48,0,117,0);
  759.         OLED_Show16x16(65,0,118,0);
  760.         OLED_Show16x16(82,0,119,0);
  761.         OLED_Show16x16(99,0,120,0);


  762.         delay_ms(1000);
  763.         OLED_CLS();
  764.         
  765.         while(FDC2214_Init());
  766.         led1=0;
  767.         delay_ms(100);
  768.         temp0 = Cap_Calculate(0);//读取初始值
  769.         temp1 = Cap_Calculate(1);
  770. }
复制代码


简单队.7z

212.16 KB, 下载次数: 21, 下载积分: 黑币 -5

回复

使用道具 举报

ID:681651 发表于 2020-1-5 18:13 | 显示全部楼层
请问楼主实物咋接线
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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