色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread記錄(十八、SHT21與24C02軟件包)

矜辰所致 ? 來(lái)源:矜辰所致 ? 作者:矜辰所致 ? 2022-07-08 11:07 ? 次閱讀
本文學(xué)習(xí)測(cè)試一下幾款典型設(shè)備的 RT-Thread  I2C軟件包

目錄

  • 前言
  • 一、RT-Thread I2C 總線注冊(cè)
    • 1.1 I2C 設(shè)備使用步驟
    • 1.2 檢查問(wèn)題
  • 二、溫濕度傳感器軟件包
    • 2.1 添加及基本測(cè)試
    • 2.2 程序中使用
  • 三、EEPROM 軟件包
    • 3.1 添加及基本測(cè)試
    • 3.2 程序中使用
  • 結(jié)語(yǔ)

前言

組件與軟件包部分之前文章我們學(xué)習(xí)了 2 個(gè)組件: SFUD組件與 AT組件。 RT-Thread 豐富的生態(tài)系統(tǒng),除了一些標(biāo)準(zhǔn)的組件, 還支持各種各樣的軟件包,上一篇文章我們已經(jīng)接觸過(guò) at_device 軟件包。在實(shí)際應(yīng)用中很多常用的設(shè)備,都有開(kāi)發(fā)者已經(jīng)寫好了軟件包,我們可以直接添加到自己的工程使用。

本文我們就以我們常用的 I2C 設(shè)備為例,說(shuō)明一下軟件包的使用方式。

專欄更新到這里已經(jīng)可以結(jié)尾了,組件與軟件包我們只做使用記錄說(shuō)明,目的在于介紹一下如何使用現(xiàn)成的組件和軟件包, 所有的包中都有作者寫的 README 文件,這是最權(quán)威也最值得參考的文件,大家都可以看到說(shuō)明和使用方式。

說(shuō)明,本文的 I2C 接口為軟件 I2C。

在開(kāi)發(fā)板上,我們有2個(gè) I2C 設(shè)備,一個(gè)是 EEPROM 24C02 和 一個(gè) 溫濕度傳感器 SHT21。


EEPROM:

pYYBAGLHn4GARvzGAACAh8SNL40859.png

溫濕度傳感器:

poYBAGLHn4GAB4jGAAB6gz1I3sY188.png

在 RT-Thread 專欄應(yīng)用篇中,我們已經(jīng)實(shí)現(xiàn)過(guò) I2C 代碼的移植,成功讀取到了 溫濕度的數(shù)據(jù),這里我再次測(cè)試,是通過(guò) RT-Thread 軟件包的使用實(shí)現(xiàn)數(shù)據(jù)讀取。

??
本 RT-Thread 專欄記錄的開(kāi)發(fā)環(huán)境:
RT-Thread記錄(一、RT-Thread 版本、RT-Thread Studio開(kāi)發(fā)環(huán)境 及 配合CubeMX開(kāi)發(fā)快速上手)
RT-Thread記錄(二、RT-Thread內(nèi)核啟動(dòng)流程 — 啟動(dòng)文件和源碼分析)
??
RT-Thread 內(nèi)核篇系列博文鏈接:
RT-Thread記錄(三、RT-Thread 線程操作函數(shù)及線程管理與FreeRTOS的比較)
RT-Thread記錄(四、RT-Thread 時(shí)鐘節(jié)拍和軟件定時(shí)器
RT-Thread記錄(五、RT-Thread 臨界區(qū)保護(hù))
RT-Thread記錄(六、IPC機(jī)制之信號(hào)量、互斥量和事件集)
RT-Thread記錄(七、IPC機(jī)制之郵箱、消息隊(duì)列)
RT-Thread記錄(八、理解 RT-Thread 內(nèi)存管理)
RT-Thread記錄(九、RT-Thread 中斷處理與階段小結(jié))
??
STM32L051C8 上使用 RT-Thread 應(yīng)用篇系列博文連接:
RT-Thread 應(yīng)用篇 — 在STM32L051上使用 RT-Thread (一、無(wú)線溫濕度傳感器 之 新建項(xiàng)目)
RT-Thread 應(yīng)用篇 — 在STM32L051上使用 RT-Thread (二、無(wú)線溫濕度傳感器 之 CubeMX配置)
RT-Thread 應(yīng)用篇 — 在STM32L051上使用 RT-Thread (三、無(wú)線溫濕度傳感器 之 I2C通訊)
RT-Thread 應(yīng)用篇 — 在STM32L051上使用 RT-Thread (四、無(wú)線溫濕度傳感器 之 串口通訊)
??
RT-Thread 設(shè)備篇系列博文鏈接:
RT-Thread記錄(十、全面認(rèn)識(shí) RT-Thread I/O 設(shè)備模型)
RT-Thread記錄(十一、I/O 設(shè)備模型之UART設(shè)備 — 源碼解析)
RT-Thread記錄(十二、I/O 設(shè)備模型之UART設(shè)備 — 使用測(cè)試)
RT-Thread記錄(十三、I/O 設(shè)備模型之PIN設(shè)備)
RT-Thread記錄(十四、I/O 設(shè)備模型之ADC設(shè)備)
RT-Thread記錄(十五、I/O 設(shè)備模型之SPI設(shè)備)
??
RT-Thread 組件與軟件包系列博文鏈接:
RT-Thread記錄(十六、SFUD組件 — SPI Flash的讀寫)
RT-Thread記錄(十七、AT組件 — ESP8266使用 at_device 軟件包聯(lián)網(wǎng))

一、RT-Thread I2C 總線注冊(cè)

我們以前博文講過(guò),RT-Thread 組件和軟件包基本都是基于 RT-Thread 的設(shè)備模型,和前面講的 SPI 設(shè)備類似,I2C 設(shè)備軟件包的使用也需要先注冊(cè) I2C 總線設(shè)備到 RT-Thread 的設(shè)備管理器。

如果沒(méi)有注冊(cè)總線,是無(wú)法使用軟件包的,比如溫濕度傳感器的 sht2x 軟件包測(cè)試如下:

pYYBAGLHn4GACHm7AAA4eyOTi2I950.png

1.1 I2C 設(shè)備使用步驟

有了以前的學(xué)習(xí),注冊(cè) I2C 總線對(duì)我們來(lái)說(shuō)已經(jīng)是小菜一碟,直接在board.h中查看軟件 I2C 使用步驟:

poYBAGLHn4KALZjAAADUUTtz9b8424.png

1、首先,在 RT-Thread Studio 工程中,打開(kāi) RT-Thread Settings,使能 軟件I2C 驅(qū)動(dòng),如下圖所示:

pYYBAGLHn4KAVxmZAADCbNyzaiI614.png

2、根據(jù)說(shuō)明和原理圖修改宏定義:

poYBAGLHn4KAM6-IAACFIkoynPg172.png

只需要上面2步,I2C 設(shè)備的使用前提就準(zhǔn)備好了,我們把程序燒錄開(kāi)發(fā)本,就可以看到系統(tǒng)在初始化的時(shí)候已經(jīng)自動(dòng)注冊(cè)好了2個(gè) I2C 總線:

(出問(wèn)題了,并沒(méi)有i2c 總線設(shè)備!!!!!! = =!)

1.2 檢查問(wèn)題

上面使用 I2C 設(shè)備使能,一切看上去都是沒(méi)問(wèn)題了:

pYYBAGLHn4KAa1fpAAA-nhjIaHc513.png

我一開(kāi)始很懵,這么簡(jiǎn)單的操作我哪里會(huì)出問(wèn)題了,想了很久,然后還搞不明白為什么初始化不會(huì)注冊(cè)i2c總線,最后還是得去看驅(qū)動(dòng)代碼?

但是壓根沒(méi)有看到注冊(cè)總線的驅(qū)動(dòng)函數(shù)……(后面發(fā)現(xiàn)并不是studio的問(wèn)題,應(yīng)該是自己很久以前誤操作,刪除了文件……)

pYYBAGLHn4OAAP_EAAEqvzxTmv0008.png

………… 花了 …… 好多時(shí)間……最后我直接從以前的工程中復(fù)制了一份文件進(jìn)來(lái):

poYBAGLHn4OAeX-7AACTF8iitMU533.png
/*
 * Copyright (c) 2006-2018, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2018-11-08     balanceTWK   first version
 */

#include 
#include "drv_soft_i2c.h"
#include "drv_config.h"

#ifdef RT_USING_I2C

//#define DRV_DEBUG
#define LOG_TAG              "drv.i2c"
#include 

#if !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3) && !defined(BSP_USING_I2C4)
#error "Please define at least one BSP_USING_I2Cx"
/* this driver can be disabled at menuconfig → RT-Thread Components → Device Drivers */
#endif

static const struct stm32_soft_i2c_config soft_i2c_config[] =
{
#ifdef BSP_USING_I2C1
    I2C1_BUS_CONFIG,
#endif
#ifdef BSP_USING_I2C2
    I2C2_BUS_CONFIG,
#endif
#ifdef BSP_USING_I2C3
    I2C3_BUS_CONFIG,
#endif
#ifdef BSP_USING_I2C4
    I2C4_BUS_CONFIG,
#endif
};

static struct stm32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])];

/**
 * This function initializes the i2c pin.
 *
 * @param Stm32 i2c dirver class.
 */
static void stm32_i2c_gpio_init(struct stm32_i2c *i2c)
{
    struct stm32_soft_i2c_config* cfg = (struct stm32_soft_i2c_config*)i2c->ops.data;

    rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD);
    rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);

    rt_pin_write(cfg->scl, PIN_HIGH);
    rt_pin_write(cfg->sda, PIN_HIGH);
}

/**
 * This function sets the sda pin.
 *
 * @param Stm32 config class.
 * @param The sda pin state.
 */
static void stm32_set_sda(void *data, rt_int32_t state)
{
    struct stm32_soft_i2c_config* cfg = (struct stm32_soft_i2c_config*)data;
    if (state)
    {
        rt_pin_write(cfg->sda, PIN_HIGH);
    }
    else
    {
        rt_pin_write(cfg->sda, PIN_LOW);
    }
}

/**
 * This function sets the scl pin.
 *
 * @param Stm32 config class.
 * @param The scl pin state.
 */
static void stm32_set_scl(void *data, rt_int32_t state)
{
    struct stm32_soft_i2c_config* cfg = (struct stm32_soft_i2c_config*)data;
    if (state)
    {
        rt_pin_write(cfg->scl, PIN_HIGH);
    }
    else
    {
        rt_pin_write(cfg->scl, PIN_LOW);
    }
}

/**
 * This function gets the sda pin state.
 *
 * @param The sda pin state.
 */
static rt_int32_t stm32_get_sda(void *data)
{
    struct stm32_soft_i2c_config* cfg = (struct stm32_soft_i2c_config*)data;
    return rt_pin_read(cfg->sda);
}

/**
 * This function gets the scl pin state.
 *
 * @param The scl pin state.
 */
static rt_int32_t stm32_get_scl(void *data)
{
    struct stm32_soft_i2c_config* cfg = (struct stm32_soft_i2c_config*)data;
    return rt_pin_read(cfg->scl);
}
/**
 * The time delay function.
 *
 * @param microseconds.
 */
static void stm32_udelay(rt_uint32_t us)
{
    rt_uint32_t ticks;
    rt_uint32_t told, tnow, tcnt = 0;
    rt_uint32_t reload = SysTick->LOAD;

    ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);
    told = SysTick->VAL;
    while (1)
    {
        tnow = SysTick->VAL;
        if (tnow != told)
        {
            if (tnow < told)
            {
                tcnt += told - tnow;
            }
            else
            {
                tcnt += reload - tnow + told;
            }
            told = tnow;
            if (tcnt >= ticks)
            {
                break;
            }
        }
    }
}

static const struct rt_i2c_bit_ops stm32_bit_ops_default =
{
    .data     = RT_NULL,
    .set_sda  = stm32_set_sda,
    .set_scl  = stm32_set_scl,
    .get_sda  = stm32_get_sda,
    .get_scl  = stm32_get_scl,
    .udelay   = stm32_udelay,
    .delay_us = 1,
    .timeout  = 100
};

/**
 * if i2c is locked, this function will unlock it
 *
 * @param stm32 config class
 *
 * @return RT_EOK indicates successful unlock.
 */
static rt_err_t stm32_i2c_bus_unlock(const struct stm32_soft_i2c_config *cfg)
{
    rt_int32_t i = 0;

    if (PIN_LOW == rt_pin_read(cfg->sda))
    {
        while (i++ < 9)
        {
            rt_pin_write(cfg->scl, PIN_HIGH);
            stm32_udelay(100);
            rt_pin_write(cfg->scl, PIN_LOW);
            stm32_udelay(100);
        }
    }
    if (PIN_LOW == rt_pin_read(cfg->sda))
    {
        return -RT_ERROR;
    }

    return RT_EOK;
}

/* I2C initialization function */
int rt_hw_i2c_init(void)
{
    rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct stm32_i2c);
    rt_err_t result;

    for (int i = 0; i < obj_num; i++)
    {
        i2c_obj[i].ops = stm32_bit_ops_default;
        i2c_obj[i].ops.data = (void*)&soft_i2c_config[i];
        i2c_obj[i].i2c2_bus.priv = &i2c_obj[i].ops;
        stm32_i2c_gpio_init(&i2c_obj[i]);
        result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c2_bus, soft_i2c_config[i].bus_name);
        RT_ASSERT(result == RT_EOK);
        stm32_i2c_bus_unlock(&soft_i2c_config[i]);
        
        LOG_D("software simulation %s init done, pin scl: %d, pin sda %d",
        soft_i2c_config[i].bus_name, 
        soft_i2c_config[i].scl, 
        soft_i2c_config[i].sda);
    }

    return RT_EOK;
}
INIT_BOARD_EXPORT(rt_hw_i2c_init);

#endif /* RT_USING_I2C */

然后就一切正常了:

pYYBAGLHn4OAX5MYAAAnIzfzwxA751.png

最開(kāi)始我以為是設(shè)置問(wèn)題,當(dāng)時(shí)陷入里面想不明白,隔了幾天回頭想想,好像是以前有人問(wèn)我加載軟件包沒(méi)用,我自己測(cè)試了一下給了回復(fù),但是當(dāng)時(shí)還是 RT-Thread 記錄專欄剛開(kāi)始,不需要用到軟件包,然后自己因?yàn)橐恍┚嬲`刪除了 這個(gè)文件 (灬? ?灬)…

到頭來(lái)想起來(lái)原來(lái)還是自己曾經(jīng)的誤操作… 尷尬…… 這種問(wèn)題確實(shí)在實(shí)際中會(huì)遇到……,所以提醒一下自己。

二、溫濕度傳感器軟件包

前面的莫名的問(wèn)題太影響心情了,緩一緩希望接下來(lái)一切順利。

2.1 添加及基本測(cè)試

對(duì)于我們使用的溫濕度傳感器,原理圖上畫的是 HTU21D ,是和 sht21 pin to pin 的程序也一樣的溫濕度傳感器,我們?cè)谲浖?a target="_blank">中心找到 sht2x 軟件包,如下圖:

poYBAGLHn4OAHub8AADSy0lBPcU148.png

軟件包并不需要過(guò)多的設(shè)置:

pYYBAGLHn4SAUt8qAADfxlOAUys021.png

添加軟件包完成,保存后重新編譯工程燒錄,可以看到有 sht20 的指令:

poYBAGLHn4SAO73bAACL7wwm548127.png

溫濕度讀取測(cè)試:

pYYBAGLHn4SAIVRXAAA3EmoU2A8923.png

2.2 程序中使用

上面我們通過(guò)命令行測(cè)試了軟件包,使用起來(lái)感覺(jué)特別簡(jiǎn)單是不是,那么我們?cè)诔绦蛑性趺凑{(diào)用呢?

從軟件包的說(shuō)明文檔里面可以查看到他的操作API(只看我們測(cè)試用到的幾個(gè)):

/*
根據(jù)總線名稱,自動(dòng)初始化對(duì)應(yīng)的 SHT20 設(shè)備
參數(shù)	描述
name	i2c 設(shè)備名稱
返回	描述
!= NULL	將返回 sht20 設(shè)備對(duì)象
= NULL	查找失敗
*/
sht20_device_t sht20_init(const char *i2c_bus_name)

/*
讀取溫度
參數(shù)	描述
dev	sht20 設(shè)備對(duì)象
返回	描述
!= 0.0	測(cè)量溫度值
=0.0	測(cè)量失敗
*/
float sht20_read_temperature(sht20_device_t dev)

/*
讀取濕度
參數(shù)	描述
dev	sht20設(shè)備對(duì)象
返回	描述
!= 0.0	測(cè)量濕度值
=0.0	測(cè)量失敗
*/
float sht20_read_humidity(sht20_device_t dev)

我們用圖文的方式說(shuō)明一下,還是很簡(jiǎn)單的:

poYBAGLHn4SAbnxRAACp3VuCWkg499.png

測(cè)試結(jié)果:

pYYBAGLHn4WAeiZnAABrWDjlnyQ783.png

三、EEPROM 軟件包

我們用的EEPROM 24C02,也有對(duì)應(yīng)的軟件包,有了上面傳感器的例子,我們使用起來(lái)就很順手了。

3.1 添加及基本測(cè)試

我們?cè)谲浖行恼业?at24cxx 軟件包,如下圖:

poYBAGLHn4WAQf4DAADY1UrNLXI903.png

軟件包并不需要過(guò)多的設(shè)置:

pYYBAGLHn4WAC79gAABCSgziAjI336.png

添加軟件包完成,保存后重新編譯工程燒錄,可以看到有 at24cxx 的指令:

poYBAGLHn4aAW9LFAABmhY4ZskI574.png

EEPROM讀取測(cè)試:

這個(gè)指令讀取有點(diǎn)小疑問(wèn),還不確定是從哪里開(kāi)始讀,讀多少,也不知道從哪里開(kāi)始寫,寫多少。
但是沒(méi)有關(guān)系,我們?nèi)绻诔绦蛑惺褂茫侵苯诱{(diào)用軟件包提供的 API。

poYBAGLHn4aAFK_AAABqgOiZd58881.png

3.2 程序中使用

從軟件包的說(shuō)明文檔里面可以查看到他的操作API,或者直接找軟件包的文件:

pYYBAGLHn4aAZBfDAACXldmv-zk573.png

這幾個(gè)函數(shù)比較簡(jiǎn)單,從函數(shù)聲明都能知道其使用方法,我們用圖文的方式說(shuō)明一下,首先是初始化:

poYBAGLHn4eAPOXlAABMxu-O6RM102.png

接著是讀寫操作:

pYYBAGLHn4eAXQEoAADvSlTRCAs072.png

測(cè)試結(jié)果:

poYBAGLHn4eAXOK2AABe7Nmy7VE010.png

結(jié)語(yǔ)

本文應(yīng)該是很簡(jiǎn)單的軟件包使用測(cè)試,沒(méi)想到和上一篇文章一樣,測(cè)試起來(lái)都不是那么順利,各種坎坷 = =!

??
也正是說(shuō)明不管東西有多簡(jiǎn)單,在實(shí)際使用過(guò)程中,難免會(huì)遇到一些意想不到的問(wèn)題,理論知識(shí)是我們的立根之本,但是實(shí)際的操作才能讓我們歷經(jīng)洗禮!

??
RT-Thread 組件與軟件包部分使用的方式都差不多,我們暫時(shí)就更新這些,那么到目前為止 RT-Thread 專欄部分的內(nèi)容也差不多可以完結(jié)了,有理論,有問(wèn)題,有測(cè)試,有應(yīng)用。

??
如果后期還有比較典型的應(yīng)用,我會(huì)繼續(xù)把專欄完善,希望大家多多支持!謝謝!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件包
    +關(guān)注

    關(guān)注

    0

    文章

    104

    瀏覽量

    11626
  • 24c02
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    30704
  • SHT21
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    9061
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1303

    瀏覽量

    40293
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    介紹RT-Thread軟件包

    學(xué)習(xí)要點(diǎn)介紹 RT-Thread軟件包;簡(jiǎn)介 nRF24L01 軟件包的使用,講解如何使用此軟件包將數(shù)據(jù)正確發(fā)送和接收;學(xué)習(xí)線程間的通信
    發(fā)表于 07-27 06:07

    如何在RT-Thread Studio開(kāi)發(fā)環(huán)境下使用nrf24L01軟件包

    如何在RT-Thread Studio開(kāi)發(fā)環(huán)境下使用nrf24L01軟件包
    發(fā)表于 12-17 07:52

    使用menuconfig配置基于RT-Thread的NimBLE軟件包

    最近在學(xué)習(xí) RT-Thread 中的 NimBLE 軟件包,使用 menuconfig 配置選中 NimBLE 軟件包,設(shè)置各種選項(xiàng)后,成功通過(guò)編譯并且運(yùn)行起來(lái)。不過(guò)這僅僅只是按照文檔說(shuō)明運(yùn)行了起來(lái)
    發(fā)表于 06-27 11:18

    【原創(chuàng)精選】RT-Thread征文精選技術(shù)文章合集

    、I/O 設(shè)備模型之SPI設(shè)備)RT-Thread記錄(十六、SFUD組件 Flash讀寫)RT-Thread記錄(十七、 AT組件-使用at軟件包
    發(fā)表于 07-26 14:56

    RT-THREAD studio 2.0.0不能添加軟件包能幫忙看看是什么問(wèn)題嗎

    1.電腦聯(lián)想小新15,intel平臺(tái)2.windows10專業(yè)版64位系統(tǒng)3.問(wèn)題描述:RT-THREAD studio 2.0.0不能添加軟件包4.用兩臺(tái)聯(lián)想筆記本電腦對(duì)比過(guò),一臺(tái)能夠正常添加
    發(fā)表于 11-30 10:15

    使用RT-Thread Studio開(kāi)發(fā)CH32V307實(shí)現(xiàn)按鍵軟件包使用

    使用上篇帖子創(chuàng)建的工程,使用RT-Thread Studio軟件包添加工具,快速實(shí)現(xiàn)MultiButton的使用在RT-Thread Studio工程內(nèi)打開(kāi)RT-Thread Sett
    發(fā)表于 04-15 21:16

    RT-Thread 軟件包介紹

    RT-Thread 軟件包介紹軟件包的目的軟件包在高級(jí)語(yǔ)言中非常常見(jiàn),很多高級(jí)語(yǔ)言都有對(duì)應(yīng)的軟件包平臺(tái),比如 Python 的 PyPi,R
    發(fā)表于 05-21 19:38 ?5569次閱讀

    RT-Thread軟件包定義和使用

    RT-Thread軟件包是運(yùn)行于RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的通用軟件組件 。RT-Thread 同時(shí)提供了開(kāi)放
    的頭像 發(fā)表于 05-21 11:29 ?1w次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>軟件包</b>定義和使用

    RT-Thread社區(qū)上有哪些優(yōu)秀的軟件包

    SX12XX 軟件包是基于 semtech 官網(wǎng) Firmware Drivers V2.1.0代碼庫(kù)的移植實(shí)現(xiàn),目前只支持 SX1278 LoRa設(shè)備。該軟件包在原代碼庫(kù)功能的基礎(chǔ)上,對(duì)接 RT-Thread SPI 設(shè)備驅(qū)動(dòng)
    的頭像 發(fā)表于 04-03 15:35 ?7695次閱讀

    2022 RT-Thread全球技術(shù)大會(huì):RT-Thread軟件包

    RT-Thread在2022年上半年新增幾十個(gè)軟件包:rtt-rust、LuatOS、gui-guider-demo。
    的頭像 發(fā)表于 05-27 14:12 ?1084次閱讀
    2022 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RT-Thread</b><b class='flag-5'>軟件包</b>

    RT-Thread全球技術(shù)大會(huì):恩智浦新增100+軟件包

    RT-Thread全球技術(shù)大會(huì):恩智浦新增100+軟件包,支持了很多有用的功能。 ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 14:26 ?989次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):恩智浦新增100+<b class='flag-5'>軟件包</b>

    RT-Thread在線軟件包改為本地軟件包的方法

    RT-Thread軟件包,使用時(shí)需要手動(dòng)通過(guò) ENV 工具 更新到 本地的 packages 目錄,并且 packages 目錄默認(rèn)不參與 Git 工程管理,軟件包多了,偶爾需要更改軟件包
    的頭像 發(fā)表于 08-11 15:02 ?1265次閱讀
    <b class='flag-5'>RT-Thread</b>在線<b class='flag-5'>軟件包</b>改為本地<b class='flag-5'>軟件包</b>的方法

    RT-Thread使用cjson軟件包發(fā)送64位長(zhǎng)整型數(shù)據(jù)

    開(kāi)發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源為0.2.2,rt-thread版本為4.1.1,cjson軟件包使
    的頭像 發(fā)表于 10-11 15:09 ?1003次閱讀
    <b class='flag-5'>RT-Thread</b>使用cjson<b class='flag-5'>軟件包</b>發(fā)送64位長(zhǎng)整型數(shù)據(jù)

    RT-Thread中Agile Modbus軟件包的使用方法

    開(kāi)發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源為0.2.2,Agile Modbus軟件包版本為v1.1.2。工程使用上一篇
    的頭像 發(fā)表于 10-11 15:37 ?2906次閱讀
    <b class='flag-5'>RT-Thread</b>中Agile Modbus<b class='flag-5'>軟件包</b>的使用方法

    RT-Thread中mymqtt軟件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip協(xié)議棧的使用的工程基礎(chǔ)上添加mymqtt軟件包。 使能mqtt example和mqtt test,保存,等待下載更新軟件包
    的頭像 發(fā)表于 10-13 10:44 ?1051次閱讀
    <b class='flag-5'>RT-Thread</b>中mymqtt<b class='flag-5'>軟件包</b>的使用方法
    主站蜘蛛池模板: 学生妹被爆插到高潮无遮挡| 高清 国产 在线 亚洲| 精子pk美女| 精品含羞草免费视频观看| 一点色成人| 欧美人禽Zozo动人物杂交| 儿子你得太大了慢点插| 亚洲国产精品无码中文字满| 麻豆免费版| 国产成人精品免费青青草原app| 亚洲欧美日韩高清专区| 内射老妇BBX| 国产人妻麻豆蜜桃色69| 《乳色吐息》无删减版在线观看 | 公主纯肉高H文| 亚洲免费网站观看视频| 拍床戏被肉高H纯肉H在水| 国产原创中文视频| 99久久久久精品国产免费麻豆 | 欧美性爱 先锋影音| 国产亚洲精品线视频在线| 99re久久热在线视频| 性色AV一区二区三区V视界影院| 毛片免费在线视频| 国产嫩草在线观看| bbwvideos欧美老妇| 啪啪啪社区| 久久久久久久久久毛片精品美女 | 受喷汁红肿抽搐磨NP双性| 老阿姨儿子一二三区| 国产欧美一区二区三区视频| 99视频国产热精品视频| 亚洲免费在线| 熟女人妻-蜜臀AV-首页| 男人把女人桶到爽免费看视频| 和老外3p爽粗大免费视频| 动漫女主被扒开双腿羞辱| 87影院午夜福利| 免费观看国产视频| yellow免费观看直播| 亚洲综合久久一本伊伊区|