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

STM32L031 Nucleo开发板I2C时钟丢失及SHT40检测异常问询

STM32L031 Nucleo开发板I2C异常问题求助

我正在STM32L031 Nucleo开发板上测试I2C指令,开发板参考手册为UM1956 STM32 Nucleo-32 Boards (MB1180)。

我曾为多款STM32单片机编写过I2C驱动,但从未遇到过此类异常问题。

I2C配置与测试情况

  • 采用默认配置设置I2C:
    I2C配置截图
  • 通过逻辑分析仪连接SCL与SDA引脚
  • 测试代码:
uint8_t test_data[1] = {0xAA};
uint16_t device_address = 0xff;
HAL_I2C_Master_Transmit(&hi2c1, device_address, &test_data, 1, 0xff);
  • 逻辑分析仪结果:
    I2C传输波形截图

我无法理解该结果:预期发送2字节(地址0xff、数据0xAA),对应SCL线16个时钟周期,但波形显示丢失时钟周期,未完成完整数据传输。请问是否有人遇到过此类I2C异常?恳请帮助。

更新

我将SHT40 I2C温湿度传感器连接至开发板,尝试检测地址0x44(SHT40地址),代码如下:

#define SHT40_ADDRESS 0x44
HAL_StatusTypeDef ret = HAL_I2C_IsDeviceReady(&hi2c1, SHT40_ADDRESS, 10, 100);
if(ret == HAL_OK)
{
    printf("I2C device detected at address 0x44\n");
}
else{
    printf("SH40 not detected\n");
}

逻辑分析仪结果:
设备检测波形截图1

该结果是否正常?我无法理解为何发送的是0x22而非预期的0x44:
设备检测波形截图2


内容的提问来源于stack exchange,提问作者TheBestPlayer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:19:57