|
|
|
|
#ifndef __MYCT_IIC_H
|
|
|
|
|
#define __MYCT_IIC_H
|
|
|
|
|
#include "systick.h"
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>ѧϰʹ<EFBFBD>ã<EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD>;
|
|
|
|
|
//ALIENTEK STM32F407<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-IIC <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD>@ALIENTEK
|
|
|
|
|
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
|
|
|
|
|
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2014/5/7
|
|
|
|
|
//<EFBFBD>汾<EFBFBD><EFBFBD>V1.1
|
|
|
|
|
//<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//Copyright(C) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾ 2014-2024
|
|
|
|
|
//All rights reserved
|
|
|
|
|
//********************************************************************************
|
|
|
|
|
//<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>
|
|
|
|
|
//V1.1 20140721
|
|
|
|
|
//1,<EFBFBD><EFBFBD>CT_IIC_Read_Byte<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
//2,<EFBFBD><EFBFBD>CT_IIC_Wait_Ack<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>MDK<EFBFBD><EFBFBD>-O2<EFBFBD>Ż<EFBFBD>.
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define GPIO_PORT_I2C GPIOC /* GPIO<EFBFBD>˿<EFBFBD> */
|
|
|
|
|
#define RCC_I2C_PORT RCC_APB2Periph_GPIOC /* GPIO<EFBFBD>˿<EFBFBD>ʱ<EFBFBD><EFBFBD> */
|
|
|
|
|
#define I2C_SCL_PIN GPIO_Pin_1 /* <EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>SCLʱ<EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>GPIO */
|
|
|
|
|
#define I2C_SDA_PIN GPIO_Pin_0 /* <EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>SDA<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>GPIO */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дSCL<EFBFBD><EFBFBD>SDA<EFBFBD>ĺ<EFBFBD> */
|
|
|
|
|
#define I2C_SCL_1() GPIO_SetBits( GPIO_PORT_I2C,I2C_SCL_PIN) /* SCL = 1 */
|
|
|
|
|
#define I2C_SCL_0() GPIO_ResetBits( GPIO_PORT_I2C,I2C_SCL_PIN) /* SCL = 0 */
|
|
|
|
|
|
|
|
|
|
#define I2C_SDA_1() GPIO_SetBits( GPIO_PORT_I2C,I2C_SDA_PIN) /* SDA = 1 */
|
|
|
|
|
#define I2C_SDA_0() GPIO_ResetBits( GPIO_PORT_I2C,I2C_SDA_PIN) /* SDA = 0 */
|
|
|
|
|
|
|
|
|
|
#define I2C_SDA_READ() ((GPIO_ReadInputDataBit(GPIO_PORT_I2C,I2C_SDA_PIN) != 0)) /* <EFBFBD><EFBFBD>SDA<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */
|
|
|
|
|
#define I2C_SCL_READ() ((GPIO_ReadInputDataBit(GPIO_PORT_I2C,I2C_SCL_PIN)) != 0) /* <EFBFBD><EFBFBD>SCL<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */
|
|
|
|
|
|
|
|
|
|
#define I2C_WR 0 /* д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit */
|
|
|
|
|
#define I2C_RD 1 /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit */
|
|
|
|
|
|
|
|
|
|
void CT_IIC_Init(void);
|
|
|
|
|
void CT_IIC_Start(void);
|
|
|
|
|
void CT_IIC_Stop(void);
|
|
|
|
|
void CT_IIC_Send_Byte(uint8_t _ucByte);
|
|
|
|
|
uint8_t CT_IIC_Read_Byte(unsigned char ack);
|
|
|
|
|
uint8_t CT_IIC_Wait_Ack(void);
|
|
|
|
|
void CT_IIC_Ack(void);
|
|
|
|
|
void CT_IIC_NAck(void);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t IIC_CheckDevice(uint8_t _Address);
|
|
|
|
|
u8 IIC_WriteByte(u8 add,u8 reg,u8 dat);
|
|
|
|
|
u8 IIC_ReadByte(u8 add,u8 reg);
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|