Files
player/Project/Src/Drive/Include/touch_iic.h

66 lines
2.8 KiB
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
#ifndef __IIC_H
#define __IIC_H
#include "stdint.h"
2025-06-27 00:32:57 +08:00
/*---------------------------------- IIC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>
* ---------------------------------*/
2025-06-27 00:32:57 +08:00
#define Touch_IIC_SCL_CLK RCC_AHB1Periph_GPIOC // SCL <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define Touch_IIC_SCL_PORT GPIOC // SCL <20><><EFBFBD>Ŷ˿<C5B6>
#define Touch_IIC_SCL_PIN GPIO_Pin_13 // SCL <20><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
#define Touch_IIC_SDA_CLK RCC_AHB1Periph_GPIOB // SDA <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define Touch_IIC_SDA_PORT GPIOB // SDA <20><><EFBFBD>Ŷ˿<C5B6>
#define Touch_IIC_SDA_PIN GPIO_Pin_2 // SDA <20><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
#define Touch_INT_CLK RCC_AHB1Periph_GPIOA // INT <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define Touch_INT_PORT GPIOA // INT <20><><EFBFBD>Ŷ˿<C5B6>
#define Touch_INT_PIN GPIO_Pin_15 // INT <20><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
#define Touch_RST_CLK RCC_AHB1Periph_GPIOI // RST <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define Touch_RST_PORT GPIOI // RST <20><><EFBFBD>Ŷ˿<C5B6>
#define Touch_RST_PIN GPIO_Pin_11 // RST <20><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
/*----------------------------------- IIC<49><43><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>
* ----------------------------------*/
#define ACK_OK 1 // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
#define ACK_ERR 0 // <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// IICͨ<43><CDA8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Touch_IIC_Delay()<29><><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>
// ͨ<><CDA8><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>100KHz<48><7A><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ýϳ<C3BD><CFB3><EFBFBD>FPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ù<EFBFBD><C3B9>ߵ<EFBFBD><DFB5>ٶ<EFBFBD>
#define IIC_DelayVaule 20
/*------------------------------------ IO<49>ڲ<EFBFBD><DAB2><EFBFBD>
* ------------------------------------*/
#define Touch_IIC_SCL(a) \
if (a) \
GPIO_SetBits(Touch_IIC_SCL_PORT, Touch_IIC_SCL_PIN); \
else \
GPIO_ResetBits(Touch_IIC_SCL_PORT, Touch_IIC_SCL_PIN)
#define Touch_IIC_SDA(a) \
if (a) \
GPIO_SetBits(Touch_IIC_SDA_PORT, Touch_IIC_SDA_PIN); \
else \
GPIO_ResetBits(Touch_IIC_SDA_PORT, Touch_IIC_SDA_PIN)
/*------------------------------------ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* -----------------------------------*/
void Touch_IIC_GPIO_Config(void); // IIC<49><43><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
void Touch_IIC_Delay(uint32_t a); // IIC<49><43>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
void Touch_INT_Out(void); // INT<4E><54><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ
void Touch_INT_In(void); // INT<4E><54><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ
void Touch_IIC_Start(void); // <20><><EFBFBD><EFBFBD>IICͨ<43><CDA8>
void Touch_IIC_Stop(void); // IICֹͣ<CDA3>ź<EFBFBD>
void Touch_IIC_ACK(void); // <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ź<EFBFBD>
void Touch_IIC_NoACK(void); // <20><><EFBFBD>ͷ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
uint8_t Touch_IIC_WaitACK(void); // <09>ȴ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
uint8_t Touch_IIC_WriteByte(uint8_t IIC_Data); // д<>ֽں<D6BD><DABA><EFBFBD>
uint8_t Touch_IIC_ReadByte(uint8_t ACK_Mode); // <20><><EFBFBD>ֽں<D6BD><DABA><EFBFBD>
2025-06-27 00:32:57 +08:00
#endif //__IIC_H