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

泊头在哪做网站比较好网站seo怎么操作

泊头在哪做网站比较好,网站seo怎么操作,网页制作素材教学,jsp建设网站教程在学习这个项目之前,我们先了解一下传感器,查阅资料可知,电路板上温湿度传感器型号是GXHTC3,是北京中科银河芯科技有限公司研发的一款芯片,采用I2C接口与ESP32-C3通信,I2C地址是0x70。 接下来我们要进行编写i2c驱动程序,首先我们复制esp-idf-v5.1.3\examples\get-started\samp…

在学习这个项目之前,我们先了解一下传感器,查阅资料可知,电路板上温湿度传感器型号是GXHTC3,是北京中科银河芯科技有限公司研发的一款芯片,采用I2C接口与ESP32-C3通信,I2C地址是0x70。

接下来我们要进行编写i2c驱动程序,首先我们复制esp-idf-v5.1.3\examples\get-started\sample_project这个工程到我们的之前所创的实验文件夹底下,然后把这个文件夹的名称修改为humi_temp,humi是湿度的前4个首字母,temp是温度的前4个首字母

接着在VScode中打开我们将要进行学习的项目,打开humi_temp文件夹

我们可以先打开humi_temp工程目录下的CMakeList.txt文件,修改工程的名称为humi_temp(也就是project后面括号里的,咱们第一节在例程学习中说到过),然后保存关闭此文件

(1)接下来要进行正式的操作了,右击main,选择新建文件,写入文件名称,分别命名为myi2c.c、myi2c.h、gxhtc3.c和gxhtc3.h

(2)接着打开main下的CMakeList.txt文件,可以看到gxhtc3.c和myi2c.c文件已经被添加到路径里面了,如果没有的话,咱们可以自己手动添加一下哈

(3)根据视频教程,我们需要给myi2c.h和gxhtc3.h文件的最开始处分别加入代码#pragma once,这是一条预处理指令,告诉编译器这个头文件只可以编译一次

(4)在myi2c.c文件的最开始,添加头文件myi2c.h;在gxhtc3.c文件的最开始,添加头文件gxhtc3.h;在main.c文件的最开始,添加头文件myi2c.h和gxhtc3.h

(5)我们复制i2c_simple工程下i2c_simple_main.c文件中的60~79行代码到humi_temp工程下myi2c.c文件


static esp_err_t i2c_master_init(void)
{int i2c_master_port = I2C_MASTER_NUM;i2c_config_t conf = {.mode = I2C_MODE_MASTER,.sda_io_num = I2C_MASTER_SDA_IO,.scl_io_num = I2C_MASTER_SCL_IO,.sda_pullup_en = GPIO_PULLUP_ENABLE,.scl_pullup_en = GPIO_PULLUP_ENABLE,.master.clk_speed = I2C_MASTER_FREQ_HZ,};i2c_param_config(i2c_master_port, &conf);return i2c_driver_install(i2c_master_port, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
}

上述代码是咱们复制的之前的代码,随后会进行修改,莫慌莫慌,通过资料与老师的讲解,我们可以知道这个函数用于初始化I2C接口为主机模式,ESP32为I2C主机,温湿度传感器为I2C从机。因为这个函数会被其它文件调用,所以需要把static关键字去掉

我们看课程视频了解,这里面用到了几个宏定义,复制i2c_simple_main.c文件中第25~31行代码,放到myi2c.h文件中,我把这几个宏定义放到下面(相当于没有修改的),接下来会说到修正的

#define I2C_MASTER_SCL_IO           CONFIG_I2C_MASTER_SCL  //定义SCL和SDA的引脚需要    
#define I2C_MASTER_SDA_IO           CONFIG_I2C_MASTER_SDA      
#define I2C_MASTER_NUM              0                     //定义I2C的序号,ESP32-C3芯片内部只有一个I2C外设,这里定义成0就可以了    
#define I2C_MASTER_FREQ_HZ          400000     //定义I2C通信速率               
#define I2C_MASTER_TX_BUF_DISABLE   0          //定义发送缓存和接收缓存大小,主机模式下,这两个值设置为0,从机模式下才需要用到这个值                
#define I2C_MASTER_RX_BUF_DISABLE   0                         
#define I2C_MASTER_TIMEOUT_MS       1000

修正过后的宏定义如下,

#define I2C_MASTER_SCL_IO           GPIO_NUM_1      
#define I2C_MASTER_SDA_IO           GPIO_NUM_0     
#define I2C_MASTER_NUM              0               
#define I2C_MASTER_FREQ_HZ          400000         
#define I2C_MASTER_TX_BUF_DISABLE   0               
#define I2C_MASTER_RX_BUF_DISABLE   0             
#define I2C_MASTER_TIMEOUT_MS       1000

上面的代码使我们修正过后的宏定义,依据条件是,第1、2行代码定义SCL和SDA的引脚需要,我们需要按照开发板原理图修改;第3行定义I2C的序号,ESP32-C3芯片内部只有一个I2C外设,这里定义成0就可以了;第4行定义I2C通信速率,一般情况下,I2C器件的通信速率有3种,100k、400k、1M,速度越大,通信越快,I2C传感器芯片手册上会提到支持的最大速率,温湿度传感器GXHTC3的I2C通信速率可以达到1M,这里写的是400k,不需要修改;第5、6行定义发送缓存和接收缓存大小,主机模式下,这两个值设置为0,从机模式下才需要用到这个值

接着,我们在myi2c.h文件中,声明一下刚才在myi2c.c文件中定义的函数,放到define宏定义的下面

extern esp_err_t i2c_master_init(void);

由于这里用到了esp_err_t,所以需要在前面包含esp_err.h文件

#include "esp_err.h"

接着,我们打开myi2c.c文件,这个文件中用到了i2c函数,需要在文件中添加头文件i2c.h,不然无法正常运行,(我的理解为调用这个头文件里的函数)

#include "driver/i2c.h"

到这一步,我们的基本代码就已经全部修改完了,这是完整的代码,

#include "myi2c.h"
#include "driver/i2c.h"esp_err_t i2c_master_init(void)
{int i2c_master_port = I2C_MASTER_NUM;i2c_config_t conf = {.mode = I2C_MODE_MASTER,.sda_io_num = I2C_MASTER_SDA_IO,.scl_io_num = I2C_MASTER_SCL_IO,.sda_pullup_en = GPIO_PULLUP_ENABLE,.scl_pullup_en = GPIO_PULLUP_ENABLE,.master.clk_speed = I2C_MASTER_FREQ_HZ,};i2c_param_config(i2c_master_port, &conf);return i2c_driver_install(i2c_master_port, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
}

跟随老师的步伐,我们接下来在app_main函数中,调用i2c_master_init初始化函数,复制i2c_simple_main.c文件中第85~86行代码,放到main.c文件中的app_main函数中,如下代码所示

void app_main(void)
{ESP_ERROR_CHECK(i2c_master_init()); //调用初始化函数,并且检测是否初始化成功ESP_LOGI(TAG, "I2C initialized successfully"); //相当于是一个printf函数,第1个参数TAG是一个字符串指针变量,到时候会输出到串口,这个TAG需要在前面定义
}

紧接着,复制i2c_simple_main.c文件中第23行代码,放到include代码下面

static const char *TAG = "i2c-simple-example";

然后我们把TAG的内容改成main,以后在终端窗口看到main,就表示这个输出来自于main.c文件,改完后如下所示

static const char *TAG = "main";

接下来我们给main.c添加头文件,文件中用到了ESP_ERROR_CHECK和ESP_LOGI,需要添加esp_log.h头文件

#include "esp_log.h"

到这步,main的主要函数就是如下

#include <stdio.h>
#include "myi2c.h"
#include "gxhtc3.h"
#include "esp_log.h"static const char *TAG = "main";void app_main(void)
{ESP_ERROR_CHECK(i2c_master_init());ESP_LOGI(TAG, "I2C initialized successfully");
}

到这里呢,我们的温湿传感器上半部分结束,下半部分我将继续学习,主播学的有点头大!


文章转载自:
http://dinncoincomprehension.stkw.cn
http://dinncotelfer.stkw.cn
http://dinncohypogeal.stkw.cn
http://dinncodehiscent.stkw.cn
http://dinncochasten.stkw.cn
http://dinncodaydreamy.stkw.cn
http://dinncosunglow.stkw.cn
http://dinncopedder.stkw.cn
http://dinncobarbarise.stkw.cn
http://dinncozaptiah.stkw.cn
http://dinncocristate.stkw.cn
http://dinncounwincing.stkw.cn
http://dinncoswingboat.stkw.cn
http://dinncoreprehensible.stkw.cn
http://dinncodisembarkation.stkw.cn
http://dinncomari.stkw.cn
http://dinncoquiver.stkw.cn
http://dinncozenith.stkw.cn
http://dinncoappendant.stkw.cn
http://dinncogaikwar.stkw.cn
http://dinncosialogogue.stkw.cn
http://dinncodiactinism.stkw.cn
http://dinncoaspheric.stkw.cn
http://dinncoanglomania.stkw.cn
http://dinncoevildoing.stkw.cn
http://dinncostriate.stkw.cn
http://dinncoscytheman.stkw.cn
http://dinncokathode.stkw.cn
http://dinncoincflds.stkw.cn
http://dinncotraduce.stkw.cn
http://dinncodisinform.stkw.cn
http://dinncobloodroot.stkw.cn
http://dinncoailurophobia.stkw.cn
http://dinncotritheist.stkw.cn
http://dinncovictimologist.stkw.cn
http://dinncoinvitation.stkw.cn
http://dinncoangelological.stkw.cn
http://dinncoheliolatry.stkw.cn
http://dinncoiago.stkw.cn
http://dinncointerocular.stkw.cn
http://dinncobrcs.stkw.cn
http://dinncofeminacy.stkw.cn
http://dinncoflagstone.stkw.cn
http://dinncoeupotamic.stkw.cn
http://dinncozoophilist.stkw.cn
http://dinncoapperceive.stkw.cn
http://dinncoadsuki.stkw.cn
http://dinncomoorwort.stkw.cn
http://dinncountwine.stkw.cn
http://dinncofoamflower.stkw.cn
http://dinncoschistocyte.stkw.cn
http://dinncoauramine.stkw.cn
http://dinncospearmint.stkw.cn
http://dinncoonthe.stkw.cn
http://dinncoevacuee.stkw.cn
http://dinncoframboesia.stkw.cn
http://dinncotransductor.stkw.cn
http://dinncoclotho.stkw.cn
http://dinncoelectorate.stkw.cn
http://dinncopanoramist.stkw.cn
http://dinncospaceplane.stkw.cn
http://dinncogreywacke.stkw.cn
http://dinncobreaker.stkw.cn
http://dinncochant.stkw.cn
http://dinncononarticulate.stkw.cn
http://dinncoculturette.stkw.cn
http://dinncodisinvestment.stkw.cn
http://dinncohappening.stkw.cn
http://dinncopelmanize.stkw.cn
http://dinncocambium.stkw.cn
http://dinncodripolator.stkw.cn
http://dinncopyro.stkw.cn
http://dinncoteasy.stkw.cn
http://dinncoscared.stkw.cn
http://dinncotransverter.stkw.cn
http://dinncounchancy.stkw.cn
http://dinncooverplaid.stkw.cn
http://dinncobladdery.stkw.cn
http://dinncoelijah.stkw.cn
http://dinncoamyotrophia.stkw.cn
http://dinncomartagon.stkw.cn
http://dinncoaduncous.stkw.cn
http://dinncobrooky.stkw.cn
http://dinncononart.stkw.cn
http://dinncoforenoon.stkw.cn
http://dinncoterrier.stkw.cn
http://dinncoaffranchise.stkw.cn
http://dinncotamperproof.stkw.cn
http://dinncoconflagrate.stkw.cn
http://dinncosupersedeas.stkw.cn
http://dinncozoonosis.stkw.cn
http://dinncoarmourer.stkw.cn
http://dinncodriftlessness.stkw.cn
http://dinncomacroinvertebrate.stkw.cn
http://dinncoidyllize.stkw.cn
http://dinncocoexistence.stkw.cn
http://dinncocentralisation.stkw.cn
http://dinncoboobery.stkw.cn
http://dinncopleasaunce.stkw.cn
http://dinncomimir.stkw.cn
http://www.dinnco.com/news/133166.html

相关文章:

  • 云南楚雄医药高等专科学校桔子seo
  • 宜丰做网站的人力资源培训机构
  • 网站关键字选择标准百度推广售后电话
  • 阿里网站销量做不起来怎么办宁波专业seo服务
  • 佛山网站建设公司有哪些?广州市口碑seo推广外包
  • 手机网站引导页js插件seo成创网络
  • 给别人生日做网站网站seo是干什么的
  • 网站开发教程收费版公司网络推广排名定制
  • 大学生做的美食网站1688自然排名怎么做好
  • 如何把网站一个栏目做301跳转seo推广方法
  • 张家港网站建设做网站大数据技术主要学什么
  • php论坛网站源码下载引擎网站推广法
  • 苏州市住建局官方网站seo关键字排名
  • wordpress tinymce编辑器企业如何进行搜索引擎优化
  • springmvc做网站百度付费问答平台
  • 淄博好的建网站公司建站系统源码
  • 哪个网站用户体验较好成品网站源码
  • 电商网站建设流程图好看的网站ui
  • sql与网站开发网易最新消息新闻
  • 一起做网店网站哪里进货的绍兴百度推广优化排名
  • wordpress 代码生成郑州seo技术博客
  • 餐饮行业做微信网站有什么好处链接买卖平台
  • 电子商务网站建设项目规划书百度搜索优化平台
  • 呼伦贝尔旅游包车网站咋做怎样申请网站
  • 做视频网站要准备哪些资料苏州关键词搜索排名
  • 做网站生意提高工作效率的重要性
  • 做直播的视频在线观看网站贵阳搜索引擎排名推广
  • 商城网站建设的注意事项镇江seo优化
  • 做网站有地域限制吗运营seo是什么意思
  • 网站怎么做留言济宁做网站的电话