RT-Thread 潘多拉开发板aht10采集温湿度LCD显示温湿度

  • Post author:
  • Post category:其他


前言

RT-Thread学习,看完了好多视频,但是但是理论上的知识,还没有自己动手实践出来刚好手里还有之前电赛的时候,买的潘多拉开发板,一直想跟着学习,但是时间太少,今天腾出时间来学一下,不能让板子吃灰,不过下载好板子的资料之后,发现不知道要从哪开始下手(有点尴尬哈)

好了废话不多说,开始上代码吧

开发前准备

正点原子潘多拉开发板一块,RT-Thread Studio开发工具即可

首先

第一步:打开我们的RT-Stuidio 然后加载我们的软件包

然后会出现一下的画面

点击《《这个按钮

然后会出现这个界面

点击硬件

然后按照如下图来进行勾选

点击保存我们的工程

出现编译画面

编译无出错

前期准备已经结束

步骤如下

我们在application目录下面建一个用来获取aht10的c文件

示例代码如下

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-10-07     Xiao Bai       the first version
 */


#include <rtthread.h>
#include "rtdevice.h"
#include <board.h>

#include "aht10.h"

extern struct aht10_device *temp_humi_dev;

/* 定义一个温湿度采集线程句柄结构体指针 */
static rt_thread_t aht10_thread = RT_NULL;

/* 温湿度采集线程入口*/
static void aht10_thread_entry(void *parameter)
{
    float humi , temp;
    rt_size_t res;
    while(1)
    {
        humi = aht10_read_humidity(temp_humi_dev);
        temp = aht10_read_temperature(temp_humi_dev);
        rt_kprintf("temperature: %d.%d \r\n humidity   : %d.%d \r\n ", (int)temp, (int)(temp * 10) % 10, (int)humi, (int)(humi * 10) % 10); /* former is integer and behind is decimal */
        rt_thread_delay(1000);

        lcd_show_string(10, 75, 24, "Temp: %d.%d C", (int)temp, (int)(temp * 10) % 10);
        lcd_show_string(10, 105, 24, "Humi: %d.%d %%", (int)humi, (int)(humi * 10) % 10);


    }
}

static int app_aht10_init(void)
{
    rt_err_t rt_err;
    /* 创建温湿度采集线程*/
    aht10_thread = rt_thread_create("aht10 thread",     /* 线程的名称 */
                                    aht10_thread_entry, /* 线程入口函数 */
                                    RT_NULL,            /* 线程入口函数的参数   */
                                    1024,               /* 线程栈大小,单位是字节  */
                                    25,                 /* 线程的优先级,数值越小优先级越高*/
                                    10);                /* 线程的时间片大小 */

    /* 如果获得线程控制块,启动这个线程 */
    if (aht10_thread != RT_NULL)
           rt_err = rt_thread_startup(aht10_thread);
       else
           rt_kprintf("aht10 thread create failure !!! \n");

       /* 判断线程是否创建成功 */
       if( rt_err != RT_EOK)
           rt_kprintf("aht10 thread startup err. \n");

       return RT_EOK;

}
INIT_APP_EXPORT(app_aht10_init);

这里有个地方需要注意修改我们的这个文件把他变成全局变量

按照我这样修改

修改之后连接我们串口看看打印的信息:

这样之后会我们就可以看到我们的串口打印的信息了

接下来就可以在我我们的LCD屏上显示了:

这样就🆗了,这里是借鉴了大佬的代码,找了好久才发现的,主要是资料太少了,希望可以帮助大家,我会把我工程的源码放在文章末尾,

当然大家也可以参考这位博主的文章。


RT-Thread Studio入门(6)— 采集温湿度数据_Willliam_william的博客-CSDN博客

这个我我的工程百度云盘

链接:https://pan.baidu.com/s/1hn1lRbqZzOX2B1K1kkJzKQ

提取码:6666



版权声明:本文为qq_56992543原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。