746|2

194

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

[工业级智能控制MCU 匠芯创D133CBS] 5- 使用RTT-软件包结合IIC读取BH1750 [复制链接]

  本帖最后由 御坂10032号 于 2024-8-19 22:55 编辑

简介

 

在上一篇文章  [工业级智能控制MCU 匠芯创D133CBS] 4- BUG 反馈 (SDK lunch11 包更新错误) https://bbs.eeworld.com.cn/thread-1290904-1-1.html 中提到的bug 已经在Gitee上反馈了Issue, 开发者会在下一个版本修复这个问题。 那么目前来说我们如果想使用软件包驱动的话就需要自己在github上下载了。

 

 

 

那么在本章评测中,我们将来看一下在匠芯创D133CBS上快速的使用软件包来结合IIC来读取外部的BH1750光照传感器。 那么在本章节你将会学会如何手动下载并且配置软件包等。

 

 

步骤

 

1- 由于我们这次要使用的是IIC,也就是在下图左侧红色标记处的IIC0, 我们需要先在menuconfig中开启IIC0

 

 

 

2- 开启IIC0, 如果出现设置不生效的情况请参考我前几篇帖子,我会在文章的最后附加上之前的文章链接

 

 

3- 打开RTT软件包的网站 https://packages.rt-thread.org/ 搜索BH1750

 

 

 

4- 在GITHUB上把源码下载或者clone到本地。 复制除了Sconfig的外的所有文件到你自定义项目的根路径下(由于当前的版本 软件包自动更新有问题,可以放到第三方包下面,也可以放到自定义项目路径下)

 

 

 

 

5- 把 bh1750.c最上面的 #ifdef PKG_USING_BH1750_V100 删除掉,并且删除最后的 #endif /* PKG_USING_BH1750_V100 */ , 因为我们没有使用pkgs --update 的方式,也没有在menuconfig里配置开启BH1750,因此这两个宏不生效。 注意,我这里没有使用最新的BH1750驱动,我是用的是V1.0.0. 不带Sensor框架的。

 

  

 

 

  6 - 在主程序中我演示了两种的调用方法,第一种使用的finish的 msh_exec 方法调用了软件包里已经暴露出的MSH command MSH_CMD_EXPORT(bh1750, bh1750 sensor function);

第二种,则是直接调用bh1750 的函数进行数据读取。 互斥锁为可选,这里使用互斥锁是为了保证BH1750 一定会在读取之前初始化完毕。 释放的方法则是在初始化完毕释放互斥锁。

#include <rtthread.h>
#ifdef RT_USING_ULOG
#include "bh1750.h"
#include <ulog.h>
#include <msh.h>
#endif

rt_mutex_t mutex_bh1750;

void init_bh1750()
{
    char init_command[] = "bh1750 probe i2c0";
    msh_exec(init_command, rt_strlen(init_command));
}

void read_bh1750(void *arg)
{
    char *args[] = {"bh1750", "read"};
    while (1)
    {

        bh1750(2, &args);
        rt_thread_mdelay(500);
    }
}

int main(void)
{
    mutex_bh1750 = rt_mutex_create("BH1750 init", RT_IPC_FLAG_FIFO);
    rt_mutex_take(mutex_bh1750, RT_WAITING_FOREVER);
    init_bh1750();
    rt_mutex_take(mutex_bh1750, RT_WAITING_FOREVER);
    rt_thread_t task = rt_thread_create("read_bh1750", read_bh1750, RT_NULL, 4096, 5, 10);
    if (task != RT_NULL)
    {
        rt_thread_startup(task);
    }
    else
    {
        rt_kprintf("Failed to create bh1750 thread!\r\n");
    }
}

 

释放互斥锁

 

 

 

实验现象如下

0273509353ce1daf78ed04815d8e3689

 

总结

 

通过 匠芯创D133CBS 和RTT软件包的结合,大大的提升了开发的效率。期待下个版本开发人员修复好 pkgs -- update

 

历史测评链接

 

[工业级智能控制MCU 匠芯创D133CBS] 1 - 开箱及其环境搭建 https://bbs.eeworld.com.cn/thread-1290588-1-1.html

[工业级智能控制MCU 匠芯创D133CBS] 2 - 创建项目及其注意事项 https://bbs.eeworld.com.cn/thread-1290861-1-1.html

[工业级智能控制MCU 匠芯创D133CBS] 3 - GPIO-IO中断 https://bbs.eeworld.com.cn/thread-1290902-1-1.html

[工业级智能控制MCU 匠芯创D133CBS] 4- BUG 反馈 (SDK lunch11 包更新错误) https://bbs.eeworld.com.cn/thread-1290904-1-1.html

最新回复

板子直接上rtt啊。   详情 回复 发表于 2024-8-20 14:24
点赞 关注
 
 

回复
举报

6105

帖子

4

TA的资源

版主

沙发
 

板子直接上rtt啊。

点评

直接RTT  详情 回复 发表于 2024-8-20 23:42
 
 
 

回复

194

帖子

4

TA的资源

纯净的硅(初级)

板凳
 
damiaa 发表于 2024-8-20 14:24 板子直接上rtt啊。

直接RTT

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表