芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密

飞芯科技提供芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密逆向服务

IC解密华大HC32F4系列单片机AD9834驱动程序源码

HC32F4源码如下:

  1. //================AD9834.h======================//
  2. /*-----------------------------------------------------
  3.                     AD9834驱动程序
  4.                    HC32F4固件函数库V2.0
  5.                   IC解密
  6. -------------------------------------------------------*/
  7. #ifndef __AD9834_H
  8. #define __AD9834_H
  9. #include "stm32f10x_lib.h"
  10. #define Triangle_Wave    0x2002
  11. #define Sine_Wave  0x2028
  12. /* AD9834晶振频率 */
  13. #define AD9834_SYSTEM_COLCK     50000000UL
  14. /* AD9834 控制引脚 */
  15. #define AD9834_Control_Port     GPIOC
  16. #define AD9834_FSYNC            GPIO_Pin_6
  17. #define AD9834_SCLK             GPIO_Pin_7
  18. #define AD9834_SDATA            GPIO_Pin_8
  19. #define AD9834_RESET            GPIO_Pin_9
  20. #define AD9834_FSYNC_SET   GPIO_SetBits(AD9834_Control_Port ,AD9834_FSYNC)
  21. #define AD9834_FSYNC_CLR   GPIO_ResetBits(AD9834_Control_Port ,AD9834_FSYNC)
  22. #define AD9834_SCLK_SET   GPIO_SetBits(AD9834_Control_Port ,AD9834_SCLK)
  23. #define AD9834_SCLK_CLR   GPIO_ResetBits(AD9834_Control_Port ,AD9834_SCLK)
  24. #define AD9834_SDATA_SET   GPIO_SetBits(AD9834_Control_Port ,AD9834_SDATA)
  25. #define AD9834_SDATA_CLR   GPIO_ResetBits(AD9834_Control_Port ,AD9834_SDATA)
  26. #define AD9834_RESET_SET   GPIO_SetBits(AD9834_Control_Port ,AD9834_RESET)
  27. #define AD9834_RESET_CLR   GPIO_ResetBits(AD9834_Control_Port ,AD9834_RESET)

  28. #define FREQ_0      0
  29. #define FREQ_1      1

  30. #define DB15        0
  31. #define DB14        0
  32. #define DB13        B28
  33. #define DB12        HLB
  34. #define DB11        FSEL
  35. #define DB10        PSEL
  36. #define DB9         PIN_SW
  37. #define DB8         RESET
  38. #define DB7         SLEEP1
  39. #define DB6         SLEEP12
  40. #define DB5         OPBITEN
  41. #define DB4         SIGN_PIB
  42. #define DB3         DIV2
  43. #define DB2         0
  44. #define DB1         MODE
  45. #define DB0         0
  46. #define CONTROL_REGISTER    (DB15<<15)|(DB14<<14)|(DB13<<13)|(DB12<<12)|(DB11<<11)|(DB10<<10)\
  47.     |(DB9<<9)|(DB8<<8)|(DB7<<7)|(DB6<<6)|(DB5<<5)|(DB4<<4)|(DB3<<3)|(DB2<<2)|(DB1<<1)|(DB0<<0)
  48. /* AD9834函数声明 */
  49. extern void AD9834_Write_16Bits(unsigned int data) ;  //写一个字到AD9834
  50. extern void AD9834_Select_Wave(unsigned int initdata) ; //选择输出波形
  51. extern void Init_AD9834() ;//初始化配置
  52. extern void AD9834_Set_Freq(unsigned char freq_number, unsigned long freq) ;//选择输出寄存器和输出频率值
  53. #endif /* AD9834_H */
  54. //================================================================//
  55. //====================AD9834.c====================================//
  56. #include "stm32f10x_lib.h"
  57. #include "AD9834.h"

  58. /****************************************************************
  59. 函数名称: AD9834_Write_16Bits
  60. 功    能: 向AD9834写入16为数据
  61. 参    数: data --  要写入的16位数据
  62. 返回值  : 无
  63. *****************************************************************/
  64. void AD9834_Write_16Bits(unsigned int data)
  65. {
  66.     unsigned char i = 0 ;
  67.    
  68.     AD9834_SCLK_SET ;
  69.     AD9834_FSYNC_CLR ;
  70.     for(i=0 ;i<16 ;i++)
  71.     {
  72.         if(data & 0x8000)
  73.           AD9834_SDATA_SET ;
  74.         else
  75.           AD9834_SDATA_CLR ;
  76.         
  77.         AD9834_SCLK_CLR ;
  78.         data <<= 1 ;
  79.         AD9834_SCLK_SET ;
  80.     }
  81.    
  82.     AD9834_FSYNC_SET ;
  83. }
  84. /***********************************************************************************
  85. 函数名称:AD9834_Select_Wave
  86. 功    能:软件为控制,
  87.     --------------------------------------------------
  88.     IOUT正弦波 ,SIGNBITOUT方波 ,写FREQREG0 ,写PHASE0
  89.     ad9834_write_16bit(0x2028)   一次性写FREQREG0
  90.     ad9834_write_16bit(0x0038)   单独改写FREQREG0的LSB
  91.     ad9834_write_16bit(0x1038)   单独改写FREQREG0的MSB
  92.     --------------------------------------------------
  93.     IOUT三角波 ,写PHASE0
  94.     ad9834_write_16bit(0x2002)   一次性写FREQREG0
  95.     ad9834_write_16bit(0x0002)   单独改写FREQREG0的LSB
  96.     ad9834_write_16bit(0x1008)   单独改写FREQREG0的MSB
  97. 参    数:initdata -- 要输入的命令
  98. 返回值  :无
  99. ************************************************************************************/
  100. void AD9834_Select_Wave(unsigned int initdata)
  101. {
  102.     AD9834_FSYNC_SET;
  103.     AD9834_SCLK_SET;
  104.    
  105.     AD9834_RESET_SET;
  106.     AD9834_RESET_SET;
  107.     AD9834_RESET_CLR;
  108.      
  109.     AD9834_Write_16Bits(initdata);
  110. }



联系方式

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

在线客服
热线电话

企业微信