77范文网 - 专业文章范例文档资料分享平台

STM32F030读取温湿度传感器SHT20的C程序源码经(4)

来源:网络收集 时间:2019-06-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

if(HTU20_SDA == 1 {

RDByte |= 0x01; } else {

RDByte&= 0xfe; }

I2CDelay(1;

HTU20_SCL_0(; //下降沿告知从机发送下一位 I2CDelay(6; }

HTU20_SDA_OUT(; //接受完一个字节,发送ACK or NACK if(AckValue == 1 {

HTU20_SDA_1(; } else {

HTU20_SDA_0(;

}

I2CDelay(3; HTU20_SCL_1(; I2CDelay(5;

HTU20_SCL_0(; //清时钟线 I2CDelay(15; //HTU20_SDA_1(; returnRDByte; } /**

* @brief soft reset by transmit reset command * @retvalNone */

voidSoftReset(void { I2CInit(; I2CStart(;

I2C_Write_Byte(SHT20ADDR & 0xfe; //I2C address + write I2C_Write_Byte(SOFT_RESET; //soft reset

I2CStop(; } /**

* @brief SET HTU20D resolution by write register * @retvalNone */

voidSET_Resolution(void { I2CStart(;

if(I2C_Write_Byte(SHT20ADDR & 0xfe == ACK //I2C address + write + ACK {

if(I2C_Write_Byte(WRITE_REGISTER==ACK //写用户寄存器 {

if(I2C_Write_Byte(0x83==ACK; //设置分辨率11bit RH% 测量时间: 12ms(typ. } // 11bit T℃测量时间: 9ms(typ. } I2CStop(; } /**

* @brief read sht20's converted result

* @paramTempOrHumiCMD: operation command for temperature or humidity * @retvalNone */

float ReadSht20(char TempOrHumiCMD { float temp; BYTE MSB,LSB;

float Humidity, Temperature; SET_Resolution(; I2CStart(;

if(I2C_Write_Byte(SHT20ADDR & 0xfe == ACK //I2C address + write + ACK {

if(I2C_Write_Byte(TempOrHumiCMD == ACK //command {

// delayms(MeasureDelay; /*这两行由下面屏蔽了的两行改到上面来的*/ // I2CStart(; do {

delayms(MeasureDelay; I2CStart(;

} while(I2C_Write_Byte(SHT20ADDR | 0x01 == NACK; //I2C address + read + NACK

MSB = I2C_Read_Byte(ACK; LSB = I2C_Read_Byte(ACK;

I2C_Read_Byte(NACK; //Checksum + NACK I2CStop(;

LSB &= 0xfc; //Data (LSB 的后两位在进行物理计算前前须置0 temp = (MSB << 8 + LSB;

if (TempOrHumiCMD == ((charTRIGGER_HUMI {

/*-- calculate relative humidity [%RH] --*/ //equation: RH% = -6 + 125 * SRH/2^RESh Humidity = (temp * 125 / 65536 - 6; return Humidity; } else {

/*-- calculate temperature [°C] --*/ //equation:T = -46.85 + 175.72 * ST/2^RESt Temperature = (temp * 175.72 / 65536 - 46.85; return Temperature; } } } return 0; }

voiddelayms(BYTE ms { BYTE t; for(t=0;t<100;t++

{ I2CDelay(10; // // } } Delayms = ms; while(Delayms;

//////////////////////////////////////////////////////////////////////////////////////////////////// #define TRIGGER_TEMP #define TRIGGER_HUMI 0xf3 0xf5 void I2CInit(void; voidSoftReset(void; voidSET_Resolution(void; float ReadSht20(char TempOrHumiCMD;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库STM32F030读取温湿度传感器SHT20的C程序源码经(4)在线全文阅读。

STM32F030读取温湿度传感器SHT20的C程序源码经(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/656918.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: