IC解密stm32f103RCt6 驱动ADAU1701DSP
IC解密#ifndef _ADAU1701_H #define _ADAU1701_H IC解密#include "stm32f10x.h" #include "sys.h" #define ADAU1701_I2C_WR 0 /* 写控制bit */ #define ADAU1701_I2C_RD 1 /* 读控制bit */ #define ClockSpeed 100000 typedef unsigned short ADI_DATA_U16; typedef const int ADI_REG_TYPE; //define data storing in flash. #define DEVICE_ADDR_ 0x68 //设备地址 #define Address_Length 2 //define address as 16bit. //define address as 16bit. #define SIGMASTUDIOTYPE_FIXPOINT 0 #define SIGMASTUDIOTYPE_INTEGER 1 /* * 阅读设备寄存器 */ #define SIGMA_READ_REGISTER( devAddress, address, length, pData ) {/*TODO: implement macro or define as function*/} /* * 设置寄存器字段的值 */ #define SIGMA_SET_REGSITER_FIELD( regVal, fieldVal, fieldMask, fieldShift ) \ { (regVal) = (((regVal) & (~(fieldMask))) | (((fieldVal) << (fieldShift)) && (fieldMask))) } /* * 获取寄存器字段的值 */ #define SIGMA_GET_REGSITER_FIELD( regVal, fieldMask, fieldShift ) \ { ((regVal) & (fieldMask)) >> (fieldShift) } /* 将浮点值转换为SigmaDSP(5.23)定点格式,此可选宏用于具有特殊实现的系统 */ #define SIGMASTUDIOTYPE_FIXPOINT_CONVERT( _value ) {/*TODO: IMPLEMENT MACRO*/} /* * Convert integer data to system compatible format * This optional macro is intended for systems having special implementation * requirements (for example: limited memory size or endianness) */ #define SIGMASTUDIOTYPE_INTEGER_CONVERT( _value ) {/*TODO: IMPLEMENT MACRO*/} #define ADAU1701_GPIO_PORT_I2C GPIOB /* GPIO端口 */ #define ADAU1701_RCC_I2C_PORT RCC_APB2Periph_GPIOB /* GPIO端口时钟 */ #define ADAU1701_I2C_SCL_PIN GPIO_Pin_10 /* 连接到SCL时钟线的GPIO */ #define ADAU1701_I2C_SDA_PIN GPIO_Pin_11 /* 连接到SDA数据线的GPIO */ #define ADAU1701_I2C_SCL_1() GPIO_SetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SCL_PIN) /* SCL = 1 */ #define ADAU1701_I2C_SCL_0() GPIO_ResetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SCL_PIN) /* SCL = 0 */ #define ADAU1701_I2C_SDA_1() GPIO_SetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SDA_PIN) /* SDA = 1 */ #define ADAU1701_I2C_SDA_0() GPIO_ResetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SDA_PIN) /* SDA = 0 */ |