I2C上拉电阻问题分析(基于stm32 HAL库)

在基于STM32 HAL库的I2C通信中遇到问题,使用10K上拉电阻导致有时无法读取ST温湿度传感器HTS221的数据。通过逻辑分析仪观察到I2C时钟在空闲时保持低电平,怀疑上拉电阻过大。尝试将IO输出模式改为AF_PP并更换不同阻值的上拉电阻,发现1K电阻时系统恢复正常工作。I2C总线负载容限对于通信速度有特定要求,需要考虑电容影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I2C上拉电阻问题分析(基于stm32 HAL库)

在使用stm32读写 ST温湿度hts221时,使用I2C总线,总线上还挂在了别的传感器,发现有时候可以读出数据,有时候读不出数据,一直是0。
首先,stm32 配置I2C IO时,使用的是AF_OD,即使用复用开漏输出,这也是官方I2C所要的方式,电流电压取决于外部电路。同时IO也配置了内部上拉。

/**
  * @brief I2C MSP Initialization 
  *        This function configures the hardware resources used in this example: 
  *           - Peripheral's clock enable
  *           - Peripheral's GPIO Configuration  
  *           - DMA configuration for transmission request by peripheral 
  *           - NVIC configuration for DMA interrupt request enable
  * @param hi2c: I2C handle pointer
  * @retval None
  */
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
{
    GPIO_InitTypeDef  GPIO_InitStruct;
    RCC_PeriphCLKInitTypeDef  RC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值