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

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

单片机解密GPIO模拟驱动W25Q16 FLASH源程序

单片机解密GPIO模拟驱动W25Q16 FLASH
程序代码应用到产品,非常稳定

单片机解密源程序如下:

  1. #include "_cpus.h"
  2. #include "_coms.h"

  3. /*=====================================================================================================================*/

  4. //SPI模式:CPOL=1 CPHA=1  CS Active low
  5. //clock is high when inactive
  6. //Data is valid on clock trailing edge
  7. //不活动时,时钟为高 也就是数据可改变区
  8. //数据在时钟后沿有效 数据作用点
  9. #define ENTER_CRITICAL()  
  10.       
  11. #define EXIT_CRITICAL()  
  12.                            
  13. #define MOSI PC6
  14. #define SPSCK PC7
  15. #define ADD_EN_WP PC8
  16. #define MISO PC9
  17. #define SS PC10
  18.                            
  19. #define SS_OUT_L  b_hGpioOut(SS,0)
  20. #define SS_OUT_H  b_hGpioOut(SS,1)
  21.                            
  22. #define WP_OUT_L  b_hGpioOut(ADD_EN_WP,0)                           
  23. #define WP_OUT_H  b_hGpioOut(ADD_EN_WP,1)   

  24. #define SPI_CLK   b_hGpioOut(SPSCK,0);b_dNOP();b_dNOP();b_dNOP();b_dNOP();b_dNOP();b_hGpioOut(SPSCK,1);//和EE相位相反
  25. #define Flash_CS_0  b_hGpioOut(SPSCK,1); ENTER_CRITICAL();WP_OUT_H;SS_OUT_L;
  26. #define Flash_CS_1  WP_OUT_L;SS_OUT_H;EXIT_CRITICAL();     b_hGpioOut(SPSCK,0);

  27.                           

  28.   

  29. void b_hExFlashSetChip2NomlPower(void);
  30. extern void b_hExFlashInit(void)
  31. {
  32.      b_hGpioInit(SS,eOUT_PUSH_PULL,1);
  33.      b_hGpioInit(SPSCK,eOUT_PUSH_PULL,0);
  34.      b_hGpioInit(MOSI,eOUT_PUSH_PULL,0);
  35.      b_hGpioInit(MISO,eOUT_PUSH_PULL,0);
  36.      
  37.      b_hGpioInit(ADD_EN_WP,eOUT_PUSH_PULL,0);
  38.      b_hExFlashSetChip2NomlPower();
  39. }


  40. /*****************************************************************
  41. ** function name  :         SPISendByte
  42. ** description    :  SPI1 send one byte
  43. ** input parameter:  byte to be sent
  44. ** return         :         byte received
  45. ******************************************************************/
  46. static uint08_t ExFlash_hSendByte(uint08_t b)
  47. {
  48.      //时钟低到高输出,高到低输入
  49.      //将b写到ee中,返回数据写到f中
  50.      uint8_t i,f;
  51.      f=0;   
  52.      // b_hGpioOut(SS,0);
  53.      //SPI_SDI_DDR = IOisIN;

  54.      b_hGpioInit(MISO,eIN_PULL_UP,0);
  55.      
  56.      //h_bGpioInit(SPSCK,eOUT_PUSH_PULL,0);
  57.      //h_bGpioInit(MOSI,eOUT_PUSH_PULL,0);
  58.      //SPI_SDI_UP=1; SPI_SCK_UP=1; SPI_SDO_UP=1;
  59.      for(i=8;i;i--)
  60.      {
  61.        //TicksDelayMs(1);
  62.        if(b&bit7){
  63.          // SPI_SDO_ODR=1;        /*向ee写1输出1p4.3*/   
  64.          b_hGpioOut(MOSI,1);
  65.        }else{       
  66.          //SPI_SDO_ODR=0;          /*向ee写0*/
  67.          b_hGpioOut(MOSI,0);
  68.        }
  69.           SPI_CLK;         
  70. //       b_hGpioOut(SPSCK,0);              //低到高跳变时钟
  71. //       TicksDelayMs(1);
  72. //       b_hGpioOut(SPSCK,1);
  73. //       TicksDelayMs(1);
  74.           b<<=1;
  75.           f<<=1;
  76.           if(b_hGpioRead(MISO))f|=bit0;     /*接收数据*/
  77.      }
  78.     // SPI_SDO_UP=0; SPI_SCK_UP=0;SPI_SDI_DDR = IOisOUT;SPI_SDI_ODR= IOisLOW;SPI_SDI_UP=0;
  79.      b_hGpioInit(MISO,eOUT_PUSH_PULL,0);

  80.      //b_hGpioOut(SS,1);
  81.      return f;
  82. }



联系方式

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

在线客服
热线电话

企业微信