打开主菜单

谷雨文档中心 β

更改

NBDK-L4:基础实验教程

添加1,223字节2019年1月23日 (三) 14:34
gyu_sht20.c
=== STM32L476 I2C简介 ===
I2C(内部集成电路)总线接口处理STM32L4和串行I2C总线之间的通信。 它提供多主机功能,并控制所有I2C总线特定的排序,协议,仲裁和定时。 它支持标准模式(Sm),快速模式(Fm)和快速模式加(Fm +)。兼容SMBus(系统管理总线)和PMBus(电源管理总线)。
 
I2C主要功能:
 
•I2C总线规范rev03兼容性:
 
- 从模式和主模式
 
- 多主机功能
 
- 标准模式(最高100 kHz)
 
- 快速模式(最高400 kHz)
 
- 快速模式加(最高1 MHz)
 
- 7位和10位寻址模式
 
- 多个7位从机地址(2个地址,1个带可配置掩码)
 
- 所有7位地址确认模式
 
- 一般电话
 
- 可编程设置和保持时间
 
- 易于使用的事件管理
 
- 可选的时钟拉伸
 
- 软件重置
 
•具有DMA功能的1字节缓冲区
 
•可编程模拟和数字噪声滤波器
=== 硬件设计 ===
==== gyu_sht20.c ====
读取SHT20温度的函数,最终返回是温度是采集值,不是真实的温度值。<syntaxhighlight lang="c++" line="1" start="52">
uint16_t SHT20_ReadTemp(void)
{
return temp;
}
</syntaxhighlight>读取SHT20湿度的函数,最终返回是湿度是采集值,不是真实的湿度值。<syntaxhighlight lang="c++" line="1" start="81">
uint16_t SHT20_ReadRH(void)
{
return rh;
}
</syntaxhighlight>SHT20软件复位函数,工程中没有使用此函数。<syntaxhighlight line="1" start="110">
void SHT20_SoftReset(void)
{
HAL_I2C_Send(SHT20_WRITE_ADDR,&cmd,1);
}
</syntaxhighlight>温湿度转换函数,用于将采集到的温湿度采集值,转化成真实的温湿度值。<syntaxhighlight lang="c++" line="1" start="127">
float SHT20_Convert(uint16_t value,uint8_t isTemp)
{
510
个编辑