久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6165|回復: 5
收起左側

基于stc15單片機+fdc2214手勢識別系統,ti杯源程序

[復制鏈接]
ID:413838 發表于 2018-10-23 09:30 | 顯示全部樓層 |閱讀模式
本代碼是TI杯省賽手勢識別代碼,如果需要原理圖的話,我回去整理,畫出來,再分享,顯示用的是串口屏
0.png

單片機源程序如下:
  1. #include "FDCIIC.h"
  2. #include "FDCdelay.h"
  3. //uint8 dis[6];                                        //顯示數字(-511至512)的字符數組
  4. //int        dis_data;                                        //變量
  5. //********************************************************************************
  6. //整數轉字符串
  7. //********************************************************************************
  8. //void lcd_printf(uint8 *s,int temp_data)
  9. //{
  10. //        if(temp_data<0)
  11. //        {
  12. //                temp_data=-temp_data;
  13. //                *s='-';
  14. //        }
  15. //        else *s=' ';

  16. //        *++s =temp_data/10000+0x30;
  17. //        temp_data=temp_data%10000;     //取余運算

  18. //        *++s =temp_data/1000+0x30;
  19. //        temp_data=temp_data%1000;     //取余運算

  20. //        *++s =temp_data/100+0x30;
  21. //        temp_data=temp_data%100;     //取余運算
  22. //        *++s =temp_data/10+0x30;
  23. //        temp_data=temp_data%10;      //取余運算
  24. //        *++s =temp_data+0x30;        
  25. //}






  26. //*************************************************************************************************
  27. //I2C起始信號
  28. //*************************************************************************************************
  29. void I2C_Start()
  30. {
  31.     SDA = 1;                    //拉高數據線
  32.     SCL = 1;                    //拉高時鐘線
  33.     Delay5us();                 //延時
  34.     SDA = 0;                    //產生下降沿
  35.     Delay5us();                 //延時
  36.     SCL = 0;                    //拉低時鐘線
  37. }
  38. //*************************************************************************************************
  39. //I2C停止信號
  40. //*************************************************************************************************
  41. void I2C_Stop()
  42. {
  43.     SDA = 0;                    //拉低數據線
  44.                 SCL = 0;
  45.                 Delay5us();
  46.     SCL = 1;                    //拉高時鐘線
  47.     Delay5us();                 //延時
  48.     SDA = 1;                    //產生上升沿
  49.     //Delay5us();                 //延時
  50. }
  51. //**************************************************************************************************
  52. //I2C發送應答信號
  53. //入口參數:ack (0:ACK 1:NAK)
  54. //**************************************************************************************************
  55. void I2C_SendACK(bit ack)
  56. {
  57.     SDA = ack;                  //寫應答信號
  58.     SCL = 1;                    //拉高時鐘線
  59.     Delay5us();                 //延時
  60.     SCL = 0;                    //拉低時鐘線
  61.     Delay5us();                 //延時
  62. }
  63. //****************************************************************************************************
  64. //I2C接收應答信號
  65. //****************************************************************************************************
  66. bit I2C_RecvACK()
  67. {
  68.     SCL = 1;                    //拉高時鐘線
  69.     Delay5us();                 //延時
  70.     CY = SDA;                   //讀應答信號
  71.     SCL = 0;                    //拉低時鐘線
  72.     Delay5us();                 //延時
  73.     return CY;
  74. }
  75. //*****************************************************************************************************
  76. //向I2C總線發送一個字節數據
  77. //*****************************************************************************************************
  78. void I2C_SendByte(uint8 dat)
  79. {
  80.     uint8 i;
  81.     for (i=0; i<8; i++)         //8位計數器
  82.     {
  83.         dat <<= 1;              //移出數據的最高位
  84.         SDA = CY;               //送數據口
  85.         SCL = 1;                //拉高時鐘線
  86.         Delay5us();             //延時
  87.         SCL = 0;                //拉低時鐘線
  88.         Delay5us();             //延時
  89.     }
  90.     I2C_RecvACK();
  91. }
  92. //*****************************************************************************************************
  93. //從I2C總線接收一個字節數據
  94. //******************************************************************************************************
  95. uint8 I2C_RecvByte()
  96. {
  97.     uint8 i;
  98.     uint8 dat = 0;
  99.     SDA = 1;                    //使能內部上拉,準備讀取數據,
  100.     for (i=0; i<8; i++)         //8位計數器
  101.     {
  102.         dat <<= 1;
  103.         SCL = 1;                //拉高時鐘線
  104.         Delay5us();             //延時
  105.         dat |= SDA;             //讀數據               
  106.         SCL = 0;                //拉低時鐘線
  107.         Delay5us();             //延時
  108.     }
  109.     return dat;
  110. }


  111. /*******************************************************************************
  112. * 函數名        : WriteRegfdc2214
  113. * 描述            : 寫寄存器數據
  114. * 輸入參數  : add,value
  115. * 返回參數  : 無
  116. *******************************************************************************/
  117. void WriteRegfdc2214(unsigned char add,unsigned int value)
  118. {
  119.     I2C_Start();
  120.     I2C_SendByte(0X54);         //ADDR=0時,地址0X2A<<1+0=0X54  
  121.     I2C_SendByte(add);      //寫地址
  122.     I2C_SendByte(value>>8); //
  123.     I2C_SendByte(value&0xff);//寫低8位
  124.     I2C_Stop();               //產生一個停止條件
  125.     delay_ms();         
  126. }
  127. /*******************************************************************************
  128. * 函數名        : ReadRegLDC
  129. * 描述            : 讀寄存器數據
  130. * 輸入參數  : add地址
  131. * 返回參數  : 無
  132. *******************************************************************************/
  133. unsigned int ReadRegfdc2214(unsigned char add)
  134. {
  135.     unsigned   int status;
  136.     unsigned    int a,b;
  137.     I2C_Start();
  138.     I2C_SendByte(0X54);           //寫命令ADDR=0
  139.     I2C_SendByte(add);     //
  140.     I2C_Start();            //重新開始
  141.     I2C_SendByte(0X55);           //發送讀命令ADDR=0
  142.    
  143.     a=I2C_RecvByte();     //讀高位
  144.         I2C_SendACK(0);
  145.     b=I2C_RecvByte();                 //讀低位
  146.         I2C_SendACK(1);
  147.     status=a*256+b;
  148.     I2C_Stop();
  149.     return (status);
  150. }
  151. /*******************************************************************************
  152. * 函數名        : InitSingleLDC1314
  153. * 描述            : 初始化單通道
  154. * 輸入參數  : 無
  155. * 返回參數  : 無
  156. *******************************************************************************/
  157. void InitSinglefdc2214(void)
  158. {
  159.     WriteRegfdc2214(0x08,0x0fa0);//設置轉換時間  設置達到最高精度

  160.     WriteRegfdc2214(0x10,0x000f);//FDC2214_SETTLECOUNT_CH0 穩定技計數計數
  161.    
  162.     WriteRegfdc2214(0x14,0x08); //參考分頻系數
  163.     //    LDC_Write_Reg(0x0C,0x0F00); //調零
  164.     WriteRegfdc2214(0x19,0x0000); //ERROE_CONFIG
  165.        
  166.     WriteRegfdc2214(0x1B,0x020D); //通道配置
  167.     WriteRegfdc2214(0x1E,0xF800); //配置驅動電流
  168.     WriteRegfdc2214(0x1A,0x1C81); //參數配置
  169.           //以下自己//
  170.           WriteRegfdc2214(0x18,0x02); //使用外部時鐘
  171. }
  172. /*******************************************************************************
  173. * 函數名        : InitMultiLDC1314
  174. * 描述            : 初始化多通道
  175. * 輸入參數  : 無
  176. * 返回參數  : 無
  177. *******************************************************************************/
  178. void InitMultifdc2214(void)//雙通道
  179. {
  180.     WriteRegfdc2214(0x08,0x0fa0);//轉換時間           \\穩定參考計數值、||原值為0x04D6
  181.           WriteRegfdc2214(0x09,0x0fa0);
  182.           WriteRegfdc2214(0x0A,0x0fa0);//轉換時間
  183.           WriteRegfdc2214(0x0B,0x0fa0);
  184.        
  185.                 WriteRegfdc2214(0x0C,0x0F00); //調0值         CH0
  186.                 WriteRegfdc2214(0x0D,0x0F00); //調0值   CH1
  187.                 WriteRegfdc2214(0x0E,0x0F00); //調0值   CH2
  188.                 WriteRegfdc2214(0x0F,0x0F00); //調0值   CH3
  189.                        
  190.                 WriteRegfdc2214(0x10,0x000A);//作用時間 CH1
  191.           WriteRegfdc2214(0x11,0x000A);//CH2
  192.                 WriteRegfdc2214(0x12,0x000A);//CH3
  193.                 WriteRegfdc2214(0x13,0x000A);//CH4
  194.          
  195.                 WriteRegfdc2214(0x14,0x08);//分頻                      \\修改分頻系數可改變數值大小     原值為0x2002
  196.           WriteRegfdc2214(0x15,0x08);
  197.     WriteRegfdc2214(0x16,0x08);//分頻
  198.           WriteRegfdc2214(0x17,0x08);
  199.        
  200.           WriteRegfdc2214(0x19,0x0000);
  201.           WriteRegfdc2214(0x1B,0xC20D);//配置多通道   2通道--0x820D
  202.        
  203.           WriteRegfdc2214(0x1E,0x9000); //驅動電流 CH0
  204.           WriteRegfdc2214(0x1F,0x9000); //CH1
  205.                 WriteRegfdc2214(0x20,0x9000); //CH2
  206.           WriteRegfdc2214(0x21,0x9000); //CH3
  207.                   

  208.         WriteRegfdc2214(0x1A,0x1C81);//配置寄存器
  209.        
  210.        
  211. }
  212. /*********************************END FILE*************************************/
復制代碼

所有資料51hei提供下載:
新建文件夾.zip (379.37 KB, 下載次數: 131)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2018-10-23 15:04 | 顯示全部樓層
好東東 希望能分享原理圖
回復

使用道具 舉報

ID:464433 發表于 2019-1-8 11:05 | 顯示全部樓層
樓主可以分享一下電路圖嗎?謝謝
回復

使用道具 舉報

ID:597773 發表于 2019-8-8 15:33 | 顯示全部樓層
樓主樓主求主函數
回復

使用道具 舉報

ID:611455 發表于 2019-9-14 16:55 | 顯示全部樓層
你好,我現在正在學習手勢識別中fdc2214的用法,感覺里面單通道和多通道的初始化代碼不太明白,能詳細的解釋一下嗎?
回復

使用道具 舉報

ID:511461 發表于 2019-10-12 19:04 | 顯示全部樓層
樓主,求原理圖
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 羞羞的视频免费在线观看 | 久草资源在线视频 | 一区二区三区高清在线观看 | 成人福利在线 | 成人av网站在线观看 | 日韩成人在线播放 | 成人免费网站视频 | 久久国产欧美日韩精品 | 欧美日韩专区 | 超碰人人人 | 日韩在线中文字幕 | 亚洲成人精品久久 | 最近中文字幕在线视频1 | 亚洲日韩中文字幕一区 | 日韩视频91 | 欧美精品一区二区在线观看 | 日本亚洲欧美 | 免费看片在线播放 | 日韩在线欧美 | 中文一区二区视频 | 大陆一级毛片免费视频观看 | 毛片站| 欧美日韩精品免费 | 国内精品视频在线观看 | 成年人精品视频在线观看 | 国产成人免费视频 | 精品免费av | 欧美一区二区三区的 | 97精品超碰一区二区三区 | 这里只有精品99re | 日韩一区二区在线免费观看 | 国产在线一区二区 | 国产三级 | 中文字幕在线观看一区 | 91综合网| 成人在线精品视频 | 精品综合 | 黄色一级毛片免费看 | 亚洲一区自拍 | 青久草视频 | 欧美lesbianxxxxhd视频社区 |