芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

STM32和uCGUI实现人体心电采集芯片解密

  1. 芯片解密#include "..APPincludes.h"


  2. // A/D 通道选择命令字和工作寄存器
  3. 芯片解密#define        CHX         0x90         //通道X+的选择控制字        
  4. 芯片解密#define        CHY         0xd0        //通道Y+的选择控制字

  5. //#define        CHX         0xd0         //通道X+的选择控制字        
  6. //#define        CHY         0x90        //通道Y+的选择控制字

  7. MATRIX  Matrix;//为了避免重复校准,可以保存该校准值

  8. //====================================================================================
  9. static void Delayus( int k)
  10. {
  11. int j;
  12.    
  13.     for(j=k;j > 0;j--);   
  14. }

  15. //====================================================================================
  16. void TP_Init(void)
  17. {
  18.   //PB10, PD9, PD10   CS,SI,CLK
  19.   GPIO_InitTypeDef GPIO_InitStructure;
  20.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_10;
  21.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 //推挽输出
  22.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  23.   GPIO_Init(GPIOB, &GPIO_InitStructure);

  24.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9|GPIO_Pin_10 ;  
  25.   GPIO_Init(GPIOD, &GPIO_InitStructure);

  26.   //PENIRQ, SO        
  27.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_11;
  28.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
  29.   GPIO_Init(GPIOB, &GPIO_InitStructure);

  30.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_15;
  31.   GPIO_Init(GPIOE, &GPIO_InitStructure);
  32.   //start_touch();
  33. }

  34. void start_touch()   
  35. {           
  36.         TP_DCLK_L();   
  37.         TP_CS_H();         
  38.         TP_DIN_H();  
  39.         TP_DCLK_H();   
  40.         TP_CS_L();         
  41. }

  42. //====================================================================================
  43. static void WR_CMD (u8 cmd)
  44. {
  45. //u8 buf;
  46.          
  47. }


  48. //====================================================================================
  49. static u16 RD_AD(void)
  50. {
  51.   u16 buf=0;
  52. u8 i;
  53.    
  54.     TP_DIN_L(); //TP_DIN(0);
  55.     TP_DCLK_H(); //TP_DCLK(1);
  56.     for(i=0; i<12; i++)
  57.     {        buf <<= 1;
  58.         
  59.         TP_DCLK_H(); //TP_DCLK(0);         
  60.         Delayus(5);
  61.         TP_DCLK_L(); //TP_DCLK(1);
  62.         
  63.         if(TP_DOUT)        buf |= 1;
  64.         
  65.         Delayus(5);
  66.         
  67.     }
  68.     TP_CS_H(); //TP_CS(1);
  69.     //buf>>=4;//只有12位有效
  70.     //buf&=0x0fff;
  71.     return(buf);
  72. }





  73. #define ReadLoop 13 //必须>2
  74. #define LOSS_DATA 5 //前后丢掉数据个数
  75. u16 Read_XY(u8 xy)
  76. {
  77. u16 i, j;
  78. u16 buf[ReadLoop];
  79. uint32 sum;
  80. u16 val;
  81.    
  82.     for(i=0; i<readloop; i++)
  83.     {
  84.        WR_CMD(xy);
  85.        //while(TP_BUSY);
  86.        Delayus(5);
  87.        buf[i]=RD_AD();
  88.       
  89.        //sum += buf[i];
  90.     }
  91.    
  92.     //排序
  93.     for(i=0; i<readloop-1; i++)
  94.     {
  95.        for(j=i+1; j<readloop; j++)
  96.        {
  97.           if(buf[i]>buf[j])
  98.           {
  99.              val=buf[i];
  100.              buf[i]=buf[j];
  101.              buf[j]=val;
  102.           }
  103.        }
  104.     }
  105.    
  106.     sum=0;
  107.     for(i=LOSS_DATA; i<readloop-1-loss_data; i++)
  108.        sum += buf[i];
  109.     val=sum/(ReadLoop-2*LOSS_DATA);
  110.    
  111.     return (val);   
  112. }

  113. //====================================================================================
  114. uint8 TP_GetAdXY(u16 *x, u16 *y)
  115. {
  116. //u16 adx,ady;
  117.    
  118.     *y=Read_XY(CHX);
  119.     *x=Read_XY(CHY);
  120.     //*x=adx;
  121.     //*y=ady;
  122.     if(*x<100 || *y<100)
  123.        return(0);
  124.     else
  125.        return(1);
  126. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信