STM32F103使用HAL库硬件I2C总是busy的问题

从网上git clone下来一个STM32F103C8T6代码,测试发现I2C总是处于busy状态,网上查看各种资料,有人说是已知问题,官方已经更新了HAL库版本修复,我查看了一下工程HAL库版本是1.7的最新已经1.8 改用1.8的版本重新生成代码测试解决了这个问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103C8T6芯片上使用HAL库进行I2C配置需要以下步骤: 1. 首先,要在STM32CubeMX中配置I2C外设。打开STM32CubeMX工具,选择正确的芯片型号,然后在配置选项卡中找到I2C外设。添加一个I2C外设到你的项目中,并根据需要进行参数配置,例如选择所需的时钟速度、地址模式等。 2. 在生成的代码中,打开你选择的I2Cx.c文件(x表示I2C外设的编号,例如I2C1、I2C2等)。 3. 在I2Cx.c文件中,可以找到I2C的初始化函数,一般是以`HAL_I2C_Init()`开头的函数。在该函数中,会设置I2C外设的参数,例如时钟速度、地址等。根据你之前在STM32CubeMX中配置的选项,可以修改这些参数。 4. 需要注意的是,在配置I2C外设之前,还需要确认I2C引脚映射正确。打开I2Cx_Init函数的最上方,可以看到I2C引脚的定义。确保这些引脚与你实际连接的引脚相对应,如果有需要可以进行修改。 5. 在初始化I2C外设后,可以在其他函数中使用I2C进行数据传输。HAL库提供了一系列的I2C操作函数,例如`HAL_I2C_Master_Transmit()`用于主机发送数据,`HAL_I2C_Master_Receive()`用于主机接收数据,等等。根据你的需求,选择适合的函数,并传入对应的参数。 6. 在使用I2C外设后,可以调用`HAL_I2C_DeInit()`函数来停止I2C外设的使用,释放资源。 以上就是在STM32F103C8T6芯片上使用HAL库进行I2C配置的步骤。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值