按键IIC通讯-层次不清导致init-check失败

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值