当前位置: 首页 > news >正文

东阿网站建设怎么制作自己的网站网页

东阿网站建设,怎么制作自己的网站网页,服务佳的小企业网站建设,河北邢台官方网站目录 一、概述 二、单次数据采集模式的测量 1、配置说明 2、代码实现方式 三、周期性数据采集模式的测量 1、配置说明 2、代码实现方式 四、完整代码下载链接 一、概述 SHT3X是Sensirion公司推出的一款高精度、完全校准的温湿度传感器,基于CMOSens技术。它提…

目录

一、概述

二、单次数据采集模式的测量

1、配置说明

2、代码实现方式

三、周期性数据采集模式的测量

1、配置说明

2、代码实现方式

四、完整代码下载链接


一、概述

        SHT3X是Sensirion公司推出的一款高精度、完全校准的温湿度传感器,基于CMOSens技术。它提供了线性化、温度补偿的数字输出,具有宽电源电压范围、高速I2C接口以及可选的地址设置等特点。

  1. 高精度:SHT3X提供了高精度的温湿度测量,湿度误差在±3%(SHT30)或±2%(SHT31)以内,温度误差在±0.3℃(SHT30)或±0.2℃(SHT31)以内。
  2. 宽电源电压范围:SHT3X的供电电压范围宽达2.4V至5.5V,确保了与各种组装情况的兼容性。
  3. 高速I2C接口:SHT3X配备了高速I2C接口,通信速度可达1MHz,并支持两个用户可选地址,方便多个传感器在同一总线上工作。
  4. 快速启动和测量时间:SHT3X具有非常快的启动和测量时间,能够快速响应环境变化。

        SHT3X的引脚包括供电引脚(VDD/VSS)、复位引脚(nRESET)、地址引脚(ADDR)、以及I2C通信引脚(SCL/SDA)。其中,ADDR引脚用于设置传感器的地址,SCL和SDA引脚分别用于I2C通信的时钟和数据线。

        通过ADDR引脚的适当接线,可以选择I2C地址(见下表)。ADDR引脚可以连接到逻辑高电平或逻辑低电平。通过切换ADDR引脚上的电平,可以在运行期间动态改变传感器的地址。

SHT3x-DIScomes采用8引脚DFN封装,请参见下表所示。 

        SHT3X内部包含湿度传感器和温度传感器,通过ADC模块将模拟信号转换为数字信号。校准模块结合ADC模块输出的数值进行处理和线性化,然后通过I2C接口与外部通信。在传输过程中,每个数据值后面都会跟着CRC校验和,以确保数据的准确性。

二、单次数据采集模式的测量

1、配置说明

        在这种模式下,一个发出的测量命令触发一个数据对的采集。每个数据对包括一个16位温度值和一个16位湿度值(按此顺序)。在传输过程中,每个数据值后面总是跟着一个CRC校验和(参见下图所示)。在单次模式下,可以选择不同的测量命令。16位命令(参见下图所示)。它们在可重复性(低、中、高)和时钟延伸(使能或禁用)方面有所不同。重复性设置会影响测量持续时间,从而影响传感器的总能耗。

2、代码实现方式

在main主函数中调用初始化后,通过调用下面的函数实现两种方式的单次测量。

	// 演示带时钟拉伸的单次测量error = SHT3X_GetTempAndHumi(&temperature, &humidity, REPEATAB_HIGH, MODE_CLKSTRETCH, 50);if(error != NO_ERROR){} // 在这里处理错误 HAL_Delay(50);// 演示带轮询的单次测量,超时50毫秒error = SHT3X_GetTempAndHumi(&temperature, &humidity, REPEATAB_HIGH, MODE_POLLING, 50);if(error != NO_ERROR){} // 在这里处理错误 HAL_Delay(50);
//----------------------------------------------------------------------------
// 获取温度和湿度
etError SHT3X_GetTempAndHumi(float* temperature, float* humidity,etRepeatability repeatability, etMode mode,uint8_t timeout)
{etError error; // 错误代码switch(mode){    case MODE_CLKSTRETCH: // 以时钟拉伸模式获取温度和湿度error = SHT3X_GetTempAndHumiClkStretch(temperature, humidity,repeatability, timeout);break;case MODE_POLLING:    // 以轮询模式获取温度和湿度error = SHT3X_GetTempAndHumiPolling(temperature, humidity,repeatability, timeout);break;default:              error = PARM_ERROR; // 参数错误break;}return error; // 返回错误代码
}//----------------------------------------------------------------------------
// 使用时钟拉伸获取温度和湿度
etError SHT3X_GetTempAndHumiClkStretch(float* temperature, float* humidity,etRepeatability repeatability,uint8_t timeout)
{etError 		error;        // 错误代码uint16_t    rawValueTemp; // 从传感器获取的温度原始值uint16_t    rawValueHumi; // 从传感器获取的湿度原始值// 以时钟拉伸模式开始测量// 根据所需的可靠性使用相应的命令switch(repeatability){case REPEATAB_LOW:error = SHT3X_WriteCommand(CMD_MEAS_CLOCKSTR_L);break;case REPEATAB_MEDIUM:error = SHT3X_WriteCommand(CMD_MEAS_CLOCKSTR_M);break;case REPEATAB_HIGH:error = SHT3X_WriteCommand(CMD_MEAS_CLOCKSTR_H);break;default:error = PARM_ERROR; // 参数错误break;}// 如果没有错误,开始读取访问if(error == NO_ERROR) error = SHT3X_StartReadAccess();// 如果没有错误,读取温度原始值,读取湿度原始值uint32_t		rawValueTemp_rawValueHumi;if(error == NO_ERROR) error = SHT3X_Read4BytesAndCrc(&rawValueTemp_rawValueHumi, timeout);rawValueTemp = rawValueTemp_rawValueHumi>>16;rawValueHumi = rawValueTemp_rawValueHumi&0xffff;// 如果没有错误,计算温度(℃)和湿度(%RH)if(error == NO_ERROR){*temperature = SHT3X_CalcTemperature(rawValueTemp);*humidity = SHT3X_CalcHumidity(rawValueHumi);}return error; // 返回错误代码
}//----------------------------------------------------------------------------
// 使用轮询获取温度和湿度
etError SHT3X_GetTempAndHumiPolling(float* temperature, float* humidity,etRepeatability repeatability,uint8_t timeout)
{etError 		error;           // 错误代码uint16_t    rawValueTemp;    // 从传感器获取的温度原始值uint16_t    rawValueHumi;    // 从传感器获取的湿度原始值// 以轮询模式开始测量// 根据所需的可靠性使用相应的命令switch(repeatability){case REPEATAB_LOW:error = SHT3X_WriteCommand(CMD_MEAS_POLLING_L);break;case REPEATAB_MEDIUM:error = SHT3X_WriteCommand(CMD_MEAS_POLLING_M);break;case REPEATAB_HIGH:error = SHT3X_WriteCommand(CMD_MEAS_POLLING_H);break;default:error = PARM_ERROR; // 参数错误break;}// 如果没有错误,等待直到测量完成if(error == NO_ERROR){// 每1毫秒轮询一次,直到测量完成或超时while(timeout--){// 检查测量是否完成error = SHT3X_StartReadAccess();// 如果测量已完成 -> 退出循环if(error == NO_ERROR) break;HAL_Delay(1);}// 检查超时错误if(timeout == 0) error = TIMEOUT_ERROR; // 发生超时错误}// 如果没有错误,读取温度和湿度原始值if(error == NO_ERROR){uint32_t		rawValueTemp_rawValueHumi;if(error == NO_ERROR) error = SHT3X_Read4BytesAndCrc(&rawValueTemp_rawValueHumi, 0);rawValueTemp = rawValueTemp_rawValueHumi>>16;rawValueHumi = rawValueTemp_rawValueHumi&0xffff;}// 如果没有错误,计算温度(℃)和湿度(%RH)if(error == NO_ERROR){*temperature = SHT3X_CalcTemperature(rawValueTemp);*humidity = SHT3X_CalcHumidity(rawValueHumi);}return error; // 返回错误代码
}

三、周期性数据采集模式的测量

1、配置说明

        在这种模式下,一个发出的测量命令产生一个数据对流。每个数据对包括一个16位温度值和一个16位湿度值(按此顺序)。在周期模式下,可以选择不同的测量命令。相应的16位命令(参见下图所示)。它们在可重复性(低、中和高)和数据采集频率(每秒0.5、1、2、4、10次测量)方面有所不同。在此模式下不能选择时钟拉伸。数据采集频率和重复性设置会影响传感器的测量持续时间和电流消耗。

        测量数据的传输可以通过相应的16位命令(参见下图所示),启动读取数据。如果没有测量数据,I2C读取头会响应一个NACK时,通信停止。


2、代码实现方式

 在main主函数中调用初始化后,通过调用下面的函数实现两种方式的连续测量。

error = SHT3X_StartPeriodicMeasurment(REPEATAB_HIGH, FREQUENCY_1HZ);			// 读取测量缓冲区
error = SHT3X_ReadMeasurementBuffer(&temperature, &humidity);if(error == NO_ERROR)
{// 点亮蓝色LED以提示新温度和湿度值//LedBlueOn();//DelayMicroSeconds(10000); // 延时10毫秒//LedBlueOff(); // 关闭蓝色LED
}
else if (error == ACK_ERROR)
{// 如果缓冲区没有新值,则忽略此错误//error = NO_ERROR;
}
//----------------------------------------------------------------------------
// 启动周期性测量
etError SHT3X_StartPeriodicMeasurment(etRepeatability repeatability,etFrequency frequency)
{etError error;        // 错误代码// 根据所需的可靠性和频率使用相应的命令switch(repeatability){case REPEATAB_LOW: // 低可靠性switch(frequency){case FREQUENCY_HZ5:  // 低可靠性, 0.5 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_05_L);break;          case FREQUENCY_1HZ:  // 低可靠性, 1.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_1_L);break;          case FREQUENCY_2HZ:  // 低可靠性, 2.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_2_L);break;          case FREQUENCY_4HZ:  // 低可靠性, 4.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_4_L);break;          case FREQUENCY_10HZ: // 低可靠性, 10.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_10_L);break;          default:error = PARM_ERROR; // 参数错误break;}break;case REPEATAB_MEDIUM: // 中等可靠性switch(frequency){case FREQUENCY_HZ5:  // 中等可靠性, 0.5 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_05_M);break;case FREQUENCY_1HZ:  // 中等可靠性, 1.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_1_M);break;        case FREQUENCY_2HZ:  // 中等可靠性, 2.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_2_M);break;        case FREQUENCY_4HZ:  // 中等可靠性, 4.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_4_M);break;      case FREQUENCY_10HZ: // 中等可靠性, 10.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_10_M);break;default:error = PARM_ERROR; // 参数错误break;}break;case REPEATAB_HIGH: // 高可靠性switch(frequency){case FREQUENCY_HZ5:  // 高可靠性, 0.5 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_05_H);break;case FREQUENCY_1HZ:  // 高可靠性, 1.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_1_H);break;case FREQUENCY_2HZ:  // 高可靠性, 2.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_2_H);break;case FREQUENCY_4HZ:  // 高可靠性, 4.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_4_H);break;case FREQUENCY_10HZ: // 高可靠性, 10.0 Hzerror = SHT3X_WriteCommand(CMD_MEAS_PERI_10_H);break;default:error = PARM_ERROR; // 参数错误break;}break;default:error = PARM_ERROR; // 参数错误break;}return error; // 返回错误代码
}//----------------------------------------------------------------------------
// 读取测量缓冲区
etError SHT3X_ReadMeasurementBuffer(float* temperature, float* humidity)
{etError  		error;        // 错误代码uint16_t		rawValueTemp; // 从传感器获取的温度原始值uint16_t		rawValueHumi; // 从传感器获取的湿度原始值// 读取测量值error = SHT3X_WriteCommand(CMD_FETCH_DATA);if(error == NO_ERROR) error = SHT3X_StartReadAccess();  uint32_t		rawValueTemp_rawValueHumi;if(error == NO_ERROR) error = SHT3X_Read4BytesAndCrc(&rawValueTemp_rawValueHumi, 100);rawValueTemp = rawValueTemp_rawValueHumi>>16;rawValueHumi = rawValueTemp_rawValueHumi&0xffff;// 如果没有错误,计算温度(℃)和湿度(%RH)if(error == NO_ERROR){*temperature = SHT3X_CalcTemperature(rawValueTemp);*humidity = SHT3X_CalcHumidity(rawValueHumi);}return error; // 返回错误代码
}

四、完整代码下载链接

完整代码下载链接:https://download.csdn.net/download/qq_26043945/89982127

数据手册:https://sensirion.com/media/documents/213E6A3B/63A5A569/Datasheet_SHT3x_DIS.pdf


文章转载自:
http://dinncoretinoscope.ssfq.cn
http://dinncotartarian.ssfq.cn
http://dinncospoken.ssfq.cn
http://dinncoboot.ssfq.cn
http://dinncomotorbus.ssfq.cn
http://dinncoisoelectronic.ssfq.cn
http://dinncomortice.ssfq.cn
http://dinncosclerogenous.ssfq.cn
http://dinncopolyembryony.ssfq.cn
http://dinncochlorinous.ssfq.cn
http://dinncoshoofly.ssfq.cn
http://dinncodeaf.ssfq.cn
http://dinncoleewardly.ssfq.cn
http://dinncopureness.ssfq.cn
http://dinncoautoinoculation.ssfq.cn
http://dinncoredirect.ssfq.cn
http://dinncotephroite.ssfq.cn
http://dinncofireproof.ssfq.cn
http://dinncoeelpot.ssfq.cn
http://dinncounaging.ssfq.cn
http://dinncolyse.ssfq.cn
http://dinncosextodecimo.ssfq.cn
http://dinncosaccharic.ssfq.cn
http://dinncoiracund.ssfq.cn
http://dinncolibermanism.ssfq.cn
http://dinncovanilla.ssfq.cn
http://dinncoerlang.ssfq.cn
http://dinncodoxographer.ssfq.cn
http://dinncorumorous.ssfq.cn
http://dinncoasshead.ssfq.cn
http://dinncofaineant.ssfq.cn
http://dinncogerontocracy.ssfq.cn
http://dinncocomma.ssfq.cn
http://dinncomarrowsky.ssfq.cn
http://dinncosleave.ssfq.cn
http://dinncocognisance.ssfq.cn
http://dinncounderachieve.ssfq.cn
http://dinncoscapegrace.ssfq.cn
http://dinncoaugur.ssfq.cn
http://dinncogerontomorphosis.ssfq.cn
http://dinncocollectivist.ssfq.cn
http://dinncoimpropriate.ssfq.cn
http://dinncoendogastric.ssfq.cn
http://dinncomaker.ssfq.cn
http://dinncosubform.ssfq.cn
http://dinncoplayhouse.ssfq.cn
http://dinncorentalsman.ssfq.cn
http://dinncothrombectomy.ssfq.cn
http://dinncoallergic.ssfq.cn
http://dinncohalling.ssfq.cn
http://dinncoaphorism.ssfq.cn
http://dinncofinsteraarhorn.ssfq.cn
http://dinncolowbred.ssfq.cn
http://dinncoderinger.ssfq.cn
http://dinncoobediently.ssfq.cn
http://dinncosmutty.ssfq.cn
http://dinncogreenhorn.ssfq.cn
http://dinncoalgebrist.ssfq.cn
http://dinncoquillwort.ssfq.cn
http://dinncoapologue.ssfq.cn
http://dinncobootlace.ssfq.cn
http://dinnconumbness.ssfq.cn
http://dinncophytoplankter.ssfq.cn
http://dinncocasuistic.ssfq.cn
http://dinncoaristocracy.ssfq.cn
http://dinncohaeres.ssfq.cn
http://dinncoduchenne.ssfq.cn
http://dinncotalisman.ssfq.cn
http://dinncodevise.ssfq.cn
http://dinncostylolite.ssfq.cn
http://dinncofloweret.ssfq.cn
http://dinncoterminate.ssfq.cn
http://dinncoouagadougou.ssfq.cn
http://dinncochill.ssfq.cn
http://dinncoprostacyclin.ssfq.cn
http://dinncopension.ssfq.cn
http://dinncohospltaler.ssfq.cn
http://dinncoaleatorism.ssfq.cn
http://dinncohearse.ssfq.cn
http://dinncolawk.ssfq.cn
http://dinncounguligrade.ssfq.cn
http://dinncoerect.ssfq.cn
http://dinncoinvandrare.ssfq.cn
http://dinncostingaree.ssfq.cn
http://dinncodulse.ssfq.cn
http://dinncolibra.ssfq.cn
http://dinncocdp.ssfq.cn
http://dinncoearthman.ssfq.cn
http://dinncocircadian.ssfq.cn
http://dinncorescissory.ssfq.cn
http://dinncokingwood.ssfq.cn
http://dinncolapse.ssfq.cn
http://dinncoripsnorter.ssfq.cn
http://dinncoconjunction.ssfq.cn
http://dinncocupulate.ssfq.cn
http://dinncosanctity.ssfq.cn
http://dinncorussianise.ssfq.cn
http://dinncoeffeminize.ssfq.cn
http://dinncotetranitromethane.ssfq.cn
http://dinncomastix.ssfq.cn
http://www.dinnco.com/news/132225.html

相关文章:

  • 网站设计如何做好口碑关键词优化地址
  • 门户网站集群建设seo优化招商
  • 手机网站返回跳转页面代码东莞外贸优化公司
  • 建网站容易吗广州网络推广哪家好
  • 怎么选择做网站的公司免费一键搭建网站
  • 优秀产品设计郑州seo实战培训
  • 网站及微信建设是否涉及知识产权企业网站优化技巧
  • 网站添加背影音乐怎么做seo优化搜索推广
  • wordpress 图片采集器吉林刷关键词排名优化软件
  • wordpress装修套餐网站源码模板下载网站
  • html5网站开发护肤品推广软文
  • 网站文章防复制加版权营销方案网站
  • xp系统做网站服务器吗小说排行榜百度
  • 网站建设与管理工资活动宣传推广方案怎么写
  • 网站建设主要包括两个方面google免登录网页版
  • 大德通众包 做网站怎么样免费的黄冈网站代码
  • 珠海做企业网站多少钱电子网址怎么创建
  • 温州疫情最新消息seo搜索引擎优化
  • dede网站演示网站维护
  • 山西企业网站建设如何分析百度指数
  • 二级建造师报名入口官网seo中文
  • 做seo推广手机网站视频剪辑培训机构哪个好
  • 安江县政府网站建设方案推广营销大的公司
  • 视频主播网站搜索引擎营销的内容
  • 贵州省建设局八大员报名网站自己建站的网站
  • 网站开发语言为徐州新站百度快照优化
  • 做交互的设计网站seo站长优化工具
  • 儋州网站建设东莞推广服务
  • 新闻发布会发言稿范文seo是对网站进行什么优化
  • 优府网站建设福州网站制作推广