本次博客使用的是STM32F103C8T6,因为该BSP已经对接好RTduino了可以直接上手使用。

一、RTduino简介

RTduino是RT-Thread实时操作系统的Arduino生态兼容层,为RT-Thread社区的子社区、Arduino开源项目的下游项目,旨在兼容Arduino社区生态来丰富RT-Thread社区软件包生态(如上千种分门别类的Arduino库,以及Arduino社区优秀的开源项目),并降低RT-Thread操作系统以及与RT-Thread适配的芯片的学习门槛。通过RTduino,可以让用户使用Arduino的函数、编程方法,轻松地将RT-Thread和BSP使用起来。用户也可以直接使用Arduino第三方库(例如传感器驱动库、算法库等)直接用在RT-Thread工程中,极大地补充了RT-Thread社区生态。

本软件包可以在RT-Thread Studio IDE和Keil-MDK编译环境下运行,但是,因为Arduino的库都是基于GCC环境开发的,因此强烈推荐使用RT-Thread Studio IDE运行。

参考链接:https://github.com/RTduino/RTduino

二、在C8T6上使用RTduino读取传感器sht31

打开兼容框架:

修改kconfig,由于C8T6flash只有64k,有些功能就不得不裁剪。

下一步就是去软件包里面拉去sht31的软件包(同时也是arduino那边的传感器库)。

然后保存后编译一下工程,到这一步基本上是不会报错的,如果报错的话就回头看看前面是否按照步骤来的。然后来到代码编写环节,不同于传统的RTthread编写方式,代码编写需要在arduino_main.c文件下进行。

这时来到packages文件下找到刚刚拉取的sht31软件包。将代码复制粘贴到arduino_main.cpp文件中去,然后开始修改。

主要是修改一下波特率,在arduino给的demo下是初始化的9600,但是我们RTthread使用的是115200,为了不乱码就不给Serial.begin()参数这样就使用RTthread的默认波特率。

最后编译一下代码,同时我也将最终代码放在下面:

/***************************************************This is an example for the SHT31-D Humidity & Temp SensorDesigned specifically to work with the SHT31-D sensor from Adafruit----> https://www.adafruit.com/products/2857These sensors use I2C to communicate, 2 pins are required tointerface****************************************************/#include <Arduino.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"bool enableHeater = false;
uint8_t loopCnt = 0;Adafruit_SHT31 sht31 = Adafruit_SHT31();void setup() {Serial.begin();//  while (!Serial)
//    delay(10);     // will pause Zero, Leonardo, etc until serial console opensSerial.println("SHT31 test");if (! sht31.begin(0x44)) {   // Set to 0x45 for alternate i2c addrSerial.println("Couldn't find SHT31");while (1) delay(1);}Serial.print("Heater Enabled State: ");if (sht31.isHeaterEnabled())Serial.println("ENABLED");elseSerial.println("DISABLED");
}void loop() {float t = sht31.readTemperature();float h = sht31.readHumidity();if (! isnan(t)) {  // check if 'is not a number'Serial.print("Temp *C = "); Serial.print(t); Serial.print("\t\t");} else {Serial.println("Failed to read temperature");}if (! isnan(h)) {  // check if 'is not a number'Serial.print("Hum. % = "); Serial.println(h);} else {Serial.println("Failed to read humidity");}delay(1000);// Toggle heater enabled state every 30 seconds// An ~3.0 degC temperature increase can be noted when heater is enabledif (loopCnt >= 30) {enableHeater = !enableHeater;sht31.heater(enableHeater);Serial.print("Heater Enabled State: ");if (sht31.isHeaterEnabled())Serial.println("ENABLED");elseSerial.println("DISABLED");loopCnt = 0;}loopCnt++;
}

最终运行结果:

RTduino+sht31温湿度传感器相关推荐

  1. SHT-31温湿度传感器资料整理

    传感器介绍:SHT-31是一款低成本环境温湿度检测模块. 工作电压 2.4-5.5v 功耗小,体积小,采用DFN封装工艺.其工作原理,是通过单片机读取温度湿度数据,IIC通信方式输出. 传感器特点:体 ...

  2. 嵌入式 STM32 SHT31温湿度传感器

    目录 简介 1.原理图 2.时序说明 数据传输 起始信号 结束信号 3.SHT31读写数据 SHT31指令集 读数据 温湿度转换 4.温湿度转换应用 sht3x初始化 读取温湿度 简介 什么是SHT3 ...

  3. MSP430 单片机 SHT30 SHT31 温湿度传感器 MSP430F5529 MSP430G2553 程序

    SHT30和SHT31程序是一样的 手册是一样的 寄存器是一样的 操作都是一样的. 唯一 不同点是:SHT31的湿度波动小,测量较准确. 推荐打开SHT3X的周期测量模式,然后一直循环读取寄存器即可, ...

  4. 【开发历程】STM32F4之SHT31-DIS温湿度传感器完整学习历程(附模块化程序代码,带详细注释)

    前言 本人萌新一枚,学习了STM32之后想自己调点什么练练手,于是打开淘宝.本来想买一块DHT11,翻着翻着就发现了这块小板.本着调就调没调过的原则,从店家购买了SHT31模块.买了后才发现,网上相关 ...

  5. STM32读取SHT3x系列温湿度传感器,标准库和HAL库

    STM32读取SHT3x系列(SHT30.SHT31.SHT35)温湿度传感器的数据并显示在0.96寸OLED屏上. 我下面提供两份代码,一份是标准库使用硬件I2C的,另一份是HAL库使用软件模拟II ...

  6. Nordic 蓝牙芯片上开发 SHT3x系列温湿度传感器

    第1部分 SHT31传感器介绍 1.1芯片简介 SHT3X系列是由瑞士Sensirion生产的高精度温湿度传感器,也是Sensirion公司目前主打的温湿度传感器系列.现在网上常见的相关资料调试的基本 ...

  7. 做一个物联网温湿度传感器(一)SHT30传感器介绍

    摘要:本文介绍物联网项目设计时常用的传感器之一--温湿度传感器.以SHT30传感器为例. 在阿里云物联网HaaS开发案例中,有一个全自动加湿器,使用的是SHT30温湿度传感器.就是下面这个案例. 该传 ...

  8. dht11温湿度传感器c语言程序_手把手教你DIY一款性价比爆棚的温湿度计!

    大家好,今天笔者要跟大家分享一款"温湿度计"的制作,一说到温湿度检测,或许大家第一个想到的就是DHT11了吧,单总线接口,操作方便,或者就是SHT2X系列的,IIC总线接口,编程也 ...

  9. adc0808温度换算公式_温湿度传感器的三种模拟量换算关系

    气候的变化常常会导致空气当中的湿度以及温度随之而产生相应的变化,如果想及时感知空气中温湿度的变化,那就需要温湿度传感器.在日常生活中,温湿度传感器种类有很多,按照数据上传方式分有RS485型温湿度传感 ...

最新文章

  1. 彻底理解 Cookie,Session,Token
  2. 生物信息「知识图谱」
  3. python语句讲解_python语句讲解_python语句讲解
  4. Py之chatterbot:python包之Chatterbot包/wxpy包简介、安装、使用方法之详细攻略
  5. multi-byte wide-char
  6. STM32F407 开发环境搭建 程序下载 个人笔记
  7. php 代码 自动检查工具下载,PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)...
  8. 下班后比你多学2个小时的人,在看这几个公众号
  9. 当前以太坊上DeFi协议总锁仓量为374.7亿美元
  10. jdbc preparestatement 执行多条语句_MyBatis执行器
  11. HID Global推出全新室内定位服务 助力企业优化配置劳动力
  12. Unix/Linux操作系统介绍
  13. 分计算iv值_【美股期權】多高的IV才算高?理解IV percentile
  14. 代码运行:CornerNet源码
  15. 折腾黑苹果的正确潜入姿势(系统版本:macOS Catalina 10.15)
  16. 使用xcode无开发者账号打包.ipa文件
  17. 程序员高手和菜鸟的区别是什么?
  18. 蓝桥杯 调和级数 Java
  19. PAT_乙级1010
  20. 如何做好网站安全防护 防止网站被黑?

热门文章

  1. 【大物第七版·电磁感应 电磁场理论】电磁感应定律总结
  2. 例程 19 红外遥控
  3. 无服务器(Serverless)是PostgreSQL的未来
  4. Ubuntu 16.04 开机运行程序或脚本
  5. 目标检测新网络——Matrix Net (xNet)参数更少,训练更快
  6. SEO站内优化需要做什么工作
  7. 进口付汇联的打印和下载,报关单进口付汇联的打印方法
  8. 捷联惯性导航系统与平台式惯性导航系统的区别
  9. Android参考书籍
  10. php 同或,php同或运算