高级会员

- 积分
- 566
- 金钱
- 566
- 注册时间
- 2016-9-28
- 在线时间
- 158 小时
|
本帖最后由 mftang2016 于 2017-12-1 22:44 编辑
//系统硬件接口
PH4 -------I2C2_SCL
PH5--------I2C2_SDA
测试结果如下图:(注释:得到温湿度数据被放大100倍,换算成实际值需要乘以0.01)
和硬件相关接口代码:
#define I2C_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
#define I2C_GPIO_CLK_DISABLE() __HAL_RCC_GPIOH_CLK_DISABLE()
#define GPIO_PORT_I2C GPIOH
#define I2C_SCL_PIN GPIO_PIN_4
#define I2C_SDA_PIN GPIO_PIN_5
#define I2C_SCL_1() HAL_GPIO_WritePin( GPIO_PORT_I2C, I2C_SCL_PIN, GPIO_PIN_SET) /* SCL = 1 */
#define I2C_SCL_0() HAL_GPIO_WritePin( GPIO_PORT_I2C, I2C_SCL_PIN, GPIO_PIN_RESET) /* SCL = 0 */
#define I2C_SDA_1() HAL_GPIO_WritePin( GPIO_PORT_I2C, I2C_SDA_PIN, GPIO_PIN_SET) /* SDA = 1 */
#define I2C_SDA_0() HAL_GPIO_WritePin( GPIO_PORT_I2C, I2C_SDA_PIN, GPIO_PIN_RESET) /* SDA = 0 */
#define I2C_SDA_READ() ((GPIO_PORT_I2C->IDR & I2C_SDA_PIN) != 0) /* read SDA status */
#define I2C_SCL_READ() ((GPIO_PORT_I2C->IDR & I2C_SCL_PIN) != 0) /* read SCLs tatus */
void board_i2cInit( void )
{
GPIO_InitTypeDef GPIO_InitStruct;
/* Enable the GPIO_I2C clock */
I2C_GPIO_CLK_ENABLE();
/* Configure the GPIO_I2C pin */
GPIO_InitStruct.Pin = I2C_SCL_PIN|I2C_SDA_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(GPIO_PORT_I2C, &GPIO_InitStruct);
}
相关文档
Sensirion_Humidity_SHT20_Datasheet_V3_8395437268751607934.pdf
(573.72 KB, 下载次数: 237)
|
|