完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言
shineblink core 开发板(简称Core)的库函数支持IIc通信功能,所以只需要调用两三个API,即可实现IIc通信功能。 PS:Core 仅用五、六行代码即可实现Wifi/Ble/NB/Lora/ThreadMesh/RFID/Eth/U***/RS485/RS232通信、以及30多种传感器/10多种硬件外设/10多种Mcu内设功能,并且这些功能最多可以 5 种随机组合同时运行。更多关于Core的内容可以在 shineblink.com 上了解。 一、实现功能 Core提供IIC0和IIC1两个同步串行口,分别对应管脚(SLC0,SDA0)和(SCL1,SDA1)。本例程通过利用LIB_IIC0Config,LIB_IIC0Write,LIB_IIC0Read这三个库函数,在IIC0口上实现了对SHT3x温湿度传感器的初始化,和读写功能,以达到读取温湿度功能。 本例只是为了展示Core提供的IIC库函数的使用方法,其实Core已经为SHT3x传感器提供了更易用更高效的库函数。Core提供IIC库的意义在于方便您将更多其他的不在Core库范围内的传感器或电子器件集成进来,如果Core库已有,还是尽量使用库函数会更高效一些。二、接线图 三、完整代码 --配置print函数直接输出到电脑串口终端上 LIB_U***Config("CDC") --定义一个数组 command = {} --配置IIC0以400Khz的频率开始工作 LIB_IIC0Config("400K") --配置sht30 ,写入命令0x2737,转换精度为High,每秒出10次数 command[1] = 0x27 command[2] = 0x37 LIB_IIC0Write(0x44, command) --开始大循环 while(GC(1) == true) do LIB_DelayMs(300) print("Start measurern") --写入fetch命令 0xE000 command[1] = 0xE0 command[2] = 0x00 LIB_IIC0Write(0x44, command) --读取sht30温湿度 result,data = LIB_IIC0Read(0x44,6) --通过读取到的6个字节数据,计算出温湿度 if result == 1 then ST = data[1]*256 ST = ST + data[2] SRH = data[4]*256 SRH = SRH + data[5] temprature = -45.0 + (175.0 * (ST / 65535.0)) humidity = 100.0 * (SRH / 65535.0) print(string.format("temprature:%.2frnhumidity:%.2f", temprature, humidity)) end end 四、代码运行效果 |
|
|
|
只有小组成员才能发言,加入小组>>
3263 浏览 9 评论
2944 浏览 16 评论
3443 浏览 1 评论
8955 浏览 16 评论
4036 浏览 18 评论
1078浏览 3评论
558浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
551浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2286浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1848浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:26 , Processed in 0.774463 second(s), Total 49, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号