用于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.
 
 
 
 
 
 

64 lines
1.9 KiB

#ifndef __MYCT_IIC_H
#define __MYCT_IIC_H
#include "systick.h"
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32F407开发板
//电容触摸屏-IIC 驱动代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2014/5/7
//版本:V1.1
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved
//********************************************************************************
//修改说明
//V1.1 20140721
//1,修改CT_IIC_Read_Byte函数,读数据更快.
//2,修改CT_IIC_Wait_Ack函数,以支持MDK的-O2优化.
//////////////////////////////////////////////////////////////////////////////////
#define GPIO_PORT_I2C GPIOC /* GPIO端口 */
#define RCC_I2C_PORT RCC_APB2Periph_GPIOC /* GPIO端口时钟 */
#define I2C_SCL_PIN GPIO_Pin_1 /* 连接到SCL时钟线的GPIO */
#define I2C_SDA_PIN GPIO_Pin_0 /* 连接到SDA数据线的GPIO */
/* 定义读写SCL和SDA的宏 */
#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)) /* 读SDA口线状态 */
#define I2C_SCL_READ() ((GPIO_ReadInputDataBit(GPIO_PORT_I2C,I2C_SCL_PIN)) != 0) /* 读SCL口线状态 */
#define I2C_WR 0 /* 写控制bit */
#define I2C_RD 1 /* 读控制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