用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.9 KiB

10 months ago
#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