📄 hal_spear_i2c.h
字号:
#ifndef HAL_SPEAR_I2C_H#define HAL_SPEAR_I2C_Hstatic unsigned int Timeoutcount;#define I2C_Peripheral_Disable() (I2CCR &= 0x1F) /* Disables I2C */typedef enum{ I2C_DEFAULT_PARAM1 = (unsigned char) 0x00, I2C_ENABLE_ACK = (unsigned char) 0x04, I2C_IT_ENABLE = (unsigned char) 0x01} I2C_InitParam;/* Parameters for configuring I2C in transmitter/ receiver mode */typedef enum{ I2C_TX_MODE = (unsigned char) 0x00, I2C_RX_MODE = (unsigned char) 0x01,}I2C_Mode;/* Parameters for selecting the speed mode */typedef enum{ I2C_DEFAULT_PARAM2 = (unsigned char) 0x00, I2C_FASTSPEED = (unsigned char) 0x80}I2C_SpeedMode;/* Transmission status parameters */typedef enum{ I2C_TX_BUFFER_ONGOING = (unsigned char) 0xFF, I2C_TX_STRING_ONGOING = (unsigned char) 0xFE, I2C_HEADERADD_TX_OK = (unsigned char) 0x40, I2C_TX_AF = (unsigned char) 0x10, I2C_START_OK = (unsigned char) 0x08, I2C_TX_ARLO = (unsigned char) 0x04, I2C_TX_BERR = (unsigned char) 0x02, I2C_ADD_TX_OK = (unsigned char) 0x01, I2C_DATA_TX_OK = (unsigned char) 0x00}I2C_TxErrCode_t;/* Reception status parameters */typedef enum { I2C_RX_BUFFER_ONGOING = (unsigned char) 0xFF, I2C_RX_DATA_EMPTY = (unsigned char) 0xFE, I2C_RX_BERR = (unsigned char) 0x02, I2C_RX_ARLO = (unsigned char) 0x04, I2C_RX_AF = (unsigned char) 0x10, I2C_DATA_RX_OK = (unsigned char) 0x00}I2C_RxErrCode_t;/* Parameters for enabling or disabling ACK bit */typedef enum{ I2C_ACK_ENABLE = (unsigned char) 0x04, I2C_ACK_DISABLE = (unsigned char) 0x00}I2C_ACK_Param;int I2C_Generate_Start( void ); /*Generate start condition *//* Description of all the functions defined in this module */int I2C_Init (I2C_InitParam Init_Value) ; /* Initialise I2C */void I2C_Select_Speed (I2C_SpeedMode Speed_Value, unsigned int I2C_Speed); /* Selects the I2C clock speed both in standard and fast speed mode */int I2C_Load_Address (unsigned char Addr_Byte, I2C_Mode Mode_Value);/* Transmits slave address */int I2C_SendByte (unsigned char Tx_Data); /* Transmits single byte of data */unsigned char I2C_ReceiveByte (void); /* Returns the received single data byte */int I2C_Generate_Stop (void); /* Generate stop condition */void I2C_ACK (I2C_ACK_Param ACK_Value);unsigned char I2C_RecieveByte(void);I2C_RxErrCode_t I2C_RecieveBuffer(unsigned char *PtrToBuffer, int NbOfBytes);I2C_TxErrCode_t I2C_IsTransmitCompleted(void);I2C_RxErrCode_t I2C_IsReceptionCompleted(void);int User_Timeout_Function(void);int I2C_IsStopGen (void);int I2C_SendBuffer (const unsigned char *PtrToBuffer, int NbOfBytes);I2C_TxErrCode_t I2C_MultiWriteRegister16( unsigned char SlaveAddress, int Index, char * PtrToBuffer,int NbOfBytes);I2C_TxErrCode_t I2C_MultiWriteRegister8( unsigned char SlaveAddress, short int Index, char * PtrToBuffer,int NbOfBytes);I2C_RxErrCode_t I2C_MultiReadRegister16( unsigned char SlaveAddress, short int Index, char * PtrToBuffer,int NbOfBytes);I2C_RxErrCode_t I2C_MultiReadRegister8( unsigned char SlaveAddress, unsigned char Index, char * PtrToBuffer,int NbOfBytes);I2C_TxErrCode_t I2C_MultiWritePages( unsigned char SlaveAddress, short int Index, char * PtrToBuffer,int NbOfBytes);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -