【N32G430开发板试用】SHT30温湿度传感器硬件iic读取
@安小芯 论坛给了个评测N32G430开发板的机会,正好手上有高精度的SHT30温湿度传感器,IIc接口的传感器,想起来用下N32G430的硬件iic操作一下。硬件连接方式,我用的i2c1,PB6和Pb7引脚。配置时钟gpio时钟,和i2c1的时钟。
RCC_APB1_Peripheral_Clock_Enable(RCC_APB1_PERIPH_I2C1);
RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOB);
我们首先要配置i2c1的gpio口,
GPIO_Structure_Initialize(&i2c1_gpio); //sht30 /*PB6 -- SCL; PB7 -- SDA*/
i2c1_gpio.Pin = I2Cx_SCL_PIN | I2Cx_SDA_PIN;
i2c1_gpio.GPIO_Slew_Rate = GPIO_SLEW_RATE_FAST;
i2c1_gpio.GPIO_Mode = GPIO_MODE_AF_OD;
i2c1_gpio.GPIO_Alternate = GPIO_AF_I2C;
i2c1_gpio.GPIO_Pull = GPIO_PULL_UP;
GPIO_Peripheral_Initialize(GPIOx, &i2c1_gpio);
其次,要配置i2c1的具体参数
I2C_Initializes_Structure(&i2c1_master);
i2c1_master.BusMode = I2C_BUSMODE_I2C;
i2c1_master.DutyCycle = I2C_SMDUTYCYCLE_1;
i2c1_master.OwnAddr1 = 0x44; // sht30 addr
i2c1_master.AckEnable = I2C_ACKEN;
i2c1_master.AddrMode = I2C_ADDR_MODE_7BIT;
i2c1_master.ClkSpeed = CLK_SPEED_400K;
我们设置主模式,速率400Kbps,sht30的iic物理地址0x44,这个是根据传感器实际电路决定的。
初始化后,这样G430的硬件iic就可以操作了,我们通过官方提供好的库函数可以向sht30发送数据和命令。按照手册操作即可。
SHT30_Reset();复位sht30.
SHT30_Send_Cmd(HIGH_1_CMD); 0x2130
然后我们在while中1秒读取一次数据,数据读出,首先进行crc校验,校验ok,进行数据转换,通过串口发送到电脑,如图所示。
这个传感器精度咋样? weifeng90 发表于 2022-8-8 08:06
这个传感器精度咋样?
精度可以的。 SHT30用起来复杂吗 通信的速度是多少呢? 使用的是硬件iic吗 这个sht30好像精度要高很多呢。 plsbackup 发表于 2022-8-18 18:38
通信的速度是多少呢?
400k 从sht10到sht31都非常好。 sht20和sht30区别? 单片机对sht30的驱动程序 传感器 要温度补偿? SHT30温湿度模块使用不错。 这个温湿度传感器需要校准的吗? SHT30的精度挺高的。 硬件iic会卡死怎么回事? SHT30如何串联多个不同的模块呢? 这个最大测量范围是多大? 这个不如模拟iic好移植呢
页:
[1]
2