STM32F103C8T6蓝板I2C2引脚切换失败技术求助
解决STM32CubeIDE中I2C-2引脚切换未生效的问题
针对STM32F103C8T6蓝药丸开发板切换I2C-2引脚(SCL改PB11、SDA改PB10)的需求,按以下步骤操作可解决配置未生效的问题:
- 先清除原有引脚分配:在Pinout视图中找到PB10和PB11,右键点击每个引脚选择
Clear Pin Assignment,解除原有的I2C2_SCL/PB10、I2C2_SDA/PB11绑定。 - 手动重新分配引脚:
- 右键PB11,选择
Toggle Pin Assignment,在弹出的列表中选中I2C2_SCL完成绑定; - 右键PB10,选择
Toggle Pin Assignment,在弹出的列表中选中I2C2_SDA完成绑定。
- 右键PB11,选择
- 配置GPIO参数:进入
System Core -> GPIO界面,检查两个引脚的配置:- 模式设为Alternate Function Open Drain(复用开漏);
- 速度根据需求选择(建议设为High);
- 上拉电阻设为
Pull-up(I2C总线需要上拉保证电平稳定)。
- 重新生成代码:点击工具栏的
Generate Code按钮,生成后检查stm32f1xx_hal_msp.c中的HAL_I2C_MspInit函数,确认引脚初始化参数与配置一致:GPIO_InitStruct.Pin = GPIO_PIN_11; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_10; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 排查冲突:确保PB10、PB11未被其他外设(如USART3)占用,若有则先解除对应外设的引脚绑定。
内容的提问来源于stack exchange,提问作者M0000
相关产品推荐
相关产品推荐

