IIC--2 OK --这是IIC模块的需要
#define I2C1_SCL_Pin GPIO_PIN_8
#define I2C1_SCL_GPIO_Port GPIOB
#define I2C1_SDA_Pin GPIO_PIN_9
#define I2C1_SDA_GPIO_Port GPIOB
#define I2C2_SCL_PIN (8)
#define I2C2_SDA_PIN (9)
{ 8 , GPIOB , GPIO_PIN_8 , GPIO_MODE_OUTPUT_PP , GPIO_PULLUP},
{ 9 , GPIOB , GPIO_PIN_9 , GPIO_MODE_OUTPUT_PP , GPIO_PULLUP},
下面的复位+中断个是HW硬件需要的 也可以是任务需要的 中断到了就去读IIC地址拿到按键的值
中断:
#define TH_INT_Pin GPIO_PIN_7
#define TH_INT_GPIO_Port GPIOB
#define TH_INT_EXTI_IRQn EXTI9_5_IRQn
#define CY3116_ISR_PIN (6) //ct3166 touch key isr
{ 6 , GPIOB , GPIO_PIN_7 , GPIO_MODE_IT_FALLING , GPIO_PULLUP},
GPIO_InitStruct.Pin = TH_INT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(TH_INT_GPIO_Port, &GPIO_InitStruct);
不要中断 我自己人造中断
复位:PC7
#define IRQO_Pin GPIO_PIN_7
#define IRQO_GPIO_Port GPIOC
IIC用
#define CY3166_RST_PIN (18) //reservr pin1
{ 18 , GPIOC , GPIO_PIN_7 , GPIO_MODE_OUTPUT_PP , GPIO_NOPULL},
执行
HAL_GPIO_WritePin(IRQO_GPIO_Port, IRQO_Pin, GPIO_PIN_RESET);
sys_delay(10);
HAL_GPIO_WritePin(IRQO_GPIO_Port, IRQO_Pin, GPIO_PIN_SET);
层次是 设备归设备 IIC归IIC 后者是前者的前驱
操作设备的时候 先 开机复位 设置中断函数 在开始IIC通讯 这样才OK