You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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完成绑定。
  • 配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:03:19