调试SHT30代码,工程使用
本文主要目标是学习IIC协议及传感器模块,旨在传到STM32单片机优化代码,亲测可用
一、环境搭建,
1、野火开发板
2、JLINK下载器(腾创电子家的,不得不说这个下载器是真的好用,店主推荐购买企业版就买了,把链接发出来,方便大家,JLINK店家地址)
二、首先搭建好iic驱动代码
三、编辑好SHT30初始化代码
四、写好SHT30读写温湿度代码
SHT30读取温度值有两种模式,1、状态查询模式2、数值查询模式,本文采用数值查询模式
iic.h
#define EEPROM_I2C_WR 0 /* 写控制bit */
#define EEPROM_I2C_RD 1 /* 读控制bit */
/* 定义IIC总线连接GPIO端口,用户只需要修改下面4行代码即可任意改变SCL和SDA的引脚 */
#define EEPROM_GPIO_PORT GPIOB /* GPIO端口 */
#define EEPROM_RCC_PORT RCC_APB2Periph_GPIOB /* GPIO端口时钟 */
#define EEPROM_I2C_SCL_PIN GPIO_Pin_6 /* 连接SCL时钟线引脚 */
#define EEPROM_I2C_SDA_PIN GPIO_Pin_7 /* 连接SDA时钟线引脚 */
/* 定义读写SCL和SDA的宏,已增加的代码可移植性和可阅读性 */
#if 0 /*条件编译 1选择GPIO的库函数实现IO读写 */
#define EEPROM_I2C_SCL_1() GPIO_SetBits(EEPROM_GPIO_PORT,EEPROM_I2C_SCL_PIN)
#define EEPROM_I2C_SCL_0() GPIO_ResetBits(EEPROM_GPIO_PORT,EEPROM_I2C_SCL_PIN)
#define EEPROM_I2C_SDA_1() GPIO_SetBits(EEPROM_GPIO_PORT,EEPROM_I2C_SDA_PIN)
#define EEPROM_I2C_SDA_0() GPIO_ResetBits(EEPROM_GPIO_PORT,EEPROM_I2C_SDA_PIN)
#define EEPROM_I2C_SDA_READ() GPIO_ReadInputDataBit(EEPROM_GPIO_PORT,EEPROM_I2C_SDA_PIN)
#else /* 这个分支选择直接寄存器实现IO读写 */
/* 注意:如下写法:在IAR最高级优化时,会被编译器错误优化 */
#define EEPROM_I2C_SCL_1() GPIO_SetBits(EEPROM_GPIO_PORT,EEPROM_I2C_SCL_PIN)
#define