国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

NCS更改MTU大小

TedLee ? 來源:jf_29076475 ? 作者:jf_29076475 ? 2025-06-27 17:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NCS更改MTU大小

一、 什么是MTU

MTU(Maximum Transmission Unit)即最大傳輸單元,它定義了藍(lán)牙網(wǎng)絡(luò)層協(xié)議一次能傳輸?shù)淖畲髷?shù)據(jù)量。在藍(lán)牙低功耗(BLE)通信中,MTU的大小直接影響到數(shù)據(jù)傳輸?shù)男屎托阅?/p>

MTU過小的影響

當(dāng)MTU設(shè)置過小時,會導(dǎo)致以下問題:

  • 數(shù)據(jù)分片增加 :數(shù)據(jù)需要被分成更小的片段進(jìn)行傳輸,增加了傳輸?shù)拇螖?shù)和復(fù)雜性。
  • 傳輸效率降低 :頻繁的數(shù)據(jù)分片和重組會消耗更多的帶寬和時間。
  • 連接穩(wěn)定性下降 :過小的MTU可能導(dǎo)致數(shù)據(jù)包丟失或傳輸錯誤,影響連接的穩(wěn)定性

所以為了能夠單包發(fā)送更大的數(shù)據(jù),服務(wù)器和客戶端都需要更新它們的MTU。MTU需要滿足主機(jī)和從機(jī)之間允許的最小值,必須支持更大的MTU的遷就支持更小的

MTU

在Zephyr里面CONFIG_BT_BUF_ACL_RX_SIZE CONFIG_BT_L2CAP_TX_MTU這兩個宏決定了ZephyrMTU的大小,下圖是MTU的關(guān)系已經(jīng)Kconfig對應(yīng)表
在這里插入圖片描述

調(diào)用這個發(fā)送函數(shù)會報-128錯誤在這里插入圖片描述

二、如何修改MTU大小

1、增加主機(jī)向從機(jī)配置的MTU大小

在prj.conf添加如下幾個宏:

CONFIG_BT_L2CAP_TX_MTU=247
CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_BUF_ACL_TX_SIZE=251

添加如上幾個宏,從機(jī)就支持支持最大的247的MTU了,但是這個是初始化協(xié)議棧的時候設(shè)置的,而MTU交換是主機(jī)和從機(jī)建立連接之后進(jìn)行協(xié)商,所以主機(jī)可以在連接之后,主動設(shè)置從機(jī)的MTU大小了,那么怎么設(shè)置從機(jī)主動發(fā)起MTU請求和請求的大小呢:

有兩個辦法

1.1 第一個辦法:固定MTU大小

再上面的宏里面,再添加一個宏就可以實現(xiàn)連接后自動更新NTU大小了

CONFIG_BT_GATT_AUTO_UPDATE_MTU=y

在這里插入圖片描述

使用Kconfig search 查詢MTU,可以看到下面的描述連接后自動申請MTU大小,為什么我要多此一舉呢,因為有些客戶不需要申請這么大的MTU,需要動態(tài)去修改MTU大小或者自己隨著在某個操作里面修改MTU大小,

2、第二個辦法:使用函數(shù)從機(jī)主動向主機(jī)申請增加MTU大小

2.1 添加宏

CONFIG_BT_GATT_CLIENT

2.2 在函數(shù)里面添加如下代碼,然后再connect回調(diào)時間里面調(diào)用

/*MTU exchange*/
static struct bt_gatt_exchange_params mtu_exchange_params[CONFIG_BT_MAX_CONN];

static void mtu_exchange_cb(struct bt_conn *conn, uint8_t err,
			    struct bt_gatt_exchange_params *params)
{
    LOG_INF("MTU exchange %u %s (%u)", bt_conn_index(conn),
	       err == 0U ? "successful" : "failed", bt_gatt_get_mtu(conn));
}



static int mtu_exchange(struct bt_conn *conn)
{
    uint8_t conn_index;
    int err;

    conn_index = bt_conn_index(conn);

    LOG_INF("MTU (%u): %u", conn_index, bt_gatt_get_mtu(conn));

    mtu_exchange_params[conn_index].func = mtu_exchange_cb;

    err = bt_gatt_exchange_mtu(conn, &mtu_exchange_params[conn_index]);
    if (err) LOG_INF("MTU exchange failed (err %d)", err);
    else LOG_INF("Exchange pending...");

    return err;
}

在connect回調(diào)調(diào)用:
在這里插入圖片描述

三、測試

我們使用nrf下面的串口服務(wù)例程進(jìn)行測試,具體怎么編譯程序和燒錄可以看我之前寫的博客

3.1 添加LOG

void mtu_updated(struct bt_conn *conn, uint16_t tx, uint16_t rx)
{
	LOG_INF("Updated MTU: TX: %d RX: %d bytesn", tx, rx);
}

static struct bt_gatt_cb gatt_callbacks = {
	.att_mtu_updated = mtu_updated,
};

隨后在main函數(shù)注冊回調(diào):

在這里插入圖片描述

3.2 可以看到,默認(rèn)例程的MTU大小只有23字節(jié)大小,每包數(shù)據(jù)發(fā)送超過了這個大小就會報錯,

在這里插入圖片描述

3.3、在手機(jī)上面申請

兩個都是一樣的,可以看到,連接之后,通過主機(jī)更新或者從機(jī)和主機(jī)申請交換MTU大小也會改變,

在這里插入圖片描述

3.4 添加自動連接更新MTU的宏&自己在連接添加MTU更換的宏

在這里插入圖片描述

審核編輯 黃宇

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

    關(guān)注

    1

    文章

    22

    瀏覽量

    9393
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    探索NCS35011:低功耗電池監(jiān)測IC的卓越性能與應(yīng)用指南

    在電池管理領(lǐng)域,低功耗、高精度的電池監(jiān)測IC至關(guān)重要。onsemi的NCS35011就是這樣一款出色的產(chǎn)品,它為3 - 5節(jié)串聯(lián)鋰離子電池提供了全面的保護(hù)和狀態(tài)監(jiān)測功能。下面,我們就來深入了解一下NCS35011的特點、工作原理以及應(yīng)用注意事項。
    的頭像 發(fā)表于 12-04 10:15 ?472次閱讀
    探索<b class='flag-5'>NCS</b>35011:低功耗電池監(jiān)測IC的卓越性能與應(yīng)用指南

    深入解析onsemi NCS2016x系列運放:高性能與多應(yīng)用的完美結(jié)合

    作為電子工程師,在日常設(shè)計工作中,選擇合適的運算放大器(op amp)至關(guān)重要。今天就來和大家詳細(xì)探討onsemi的NCS20161、NCS20162、NCS20164以及對應(yīng)的NCV系列運算放大器,它們在性能和應(yīng)用上都有很多值
    的頭像 發(fā)表于 12-03 13:52 ?396次閱讀
    深入解析onsemi <b class='flag-5'>NCS</b>2016x系列運放:高性能與多應(yīng)用的完美結(jié)合

    深入解析OnSemi NCS21673/4系列電流檢測放大器

    在電子工程師的日常設(shè)計工作中,電流檢測是一個至關(guān)重要的環(huán)節(jié),它直接關(guān)系到電路的性能和穩(wěn)定性。今天,我們就來深入探討一下OnSemi推出的NCS21673、NCV21673、NCS21674和NCV21674系列電流檢測放大器,看看它們有哪些獨特的優(yōu)勢和應(yīng)用場景。
    的頭像 發(fā)表于 12-02 13:43 ?408次閱讀
    深入解析OnSemi <b class='flag-5'>NCS</b>21673/4系列電流檢測放大器

    使用NucleiStudio_IDE編譯程序,下載到外掛的flash,如果我更改了外部flash的型號或者大小,需要修改什么內(nèi)容呢?

    使用NucleiStudio_IDE編譯程序,下載到外掛的flash,如果我更改了外部flash的型號或者大小,需要修改什么內(nèi)容呢?
    發(fā)表于 11-06 07:34

    NCS隨筆】NCS使用CJSON庫

    NCS隨筆】NCS使用CJSON庫 這個文章講一下在NCS上面如何使用JSON庫,我使用Hello_world例程添加庫 宏的配置 CONFIG_LOG =y
    的頭像 發(fā)表于 08-13 15:12 ?636次閱讀
    【<b class='flag-5'>NCS</b>隨筆】<b class='flag-5'>NCS</b>使用CJSON庫

    NCS放大器DAD3350使用效果

    NCS放大器DAD3350在使用效果上展現(xiàn)出顯著優(yōu)勢,具體體現(xiàn)在以下幾個方面: ? 一、信號增強(qiáng)與穩(wěn)定性提升 ? ? 精準(zhǔn)信號放大 ? NCS放大器DAD3350能夠?qū)⑤斎胄盘柕碾妷夯蚬β视行Х糯?/div>
    的頭像 發(fā)表于 07-12 09:36 ?705次閱讀

    NCS放大器DAD3350使用場景與效果

    NCS放大器DAD3350使用場景與效果 ? ? 使用場景 ? ? 半導(dǎo)體切割設(shè)備 ? ? 核心應(yīng)用 ?:NCS放大器DAD3350是DISCO DAD3350切割機(jī)的關(guān)鍵組件,用于信號放大,確保
    的頭像 發(fā)表于 07-12 09:34 ?773次閱讀

    NCS放大器DAD3350詳細(xì)信息

    ? NCS放大器DAD3350詳細(xì)信息 ? ? 產(chǎn)品概述 ? ? 型號 ?:DAD3350 ? 品牌 ?:NCS ? 應(yīng)用領(lǐng)域 ?:主要用于半導(dǎo)體劃片機(jī)(如DISCO DAD3350系列)的信號放大
    的頭像 發(fā)表于 07-12 09:31 ?772次閱讀

    Android14在BLE中,當(dāng)MTU超過 517時,如何處理數(shù)據(jù)傳輸?

    /behavior-changes-all#mtu-set-to-517 我們在應(yīng)用更改后進(jìn)行了測試,但遇到了無法傳輸超過 512 字節(jié)數(shù)據(jù)的問題。 由于客戶的工作數(shù)據(jù)通常超過 512 字節(jié),我們預(yù)計需要分割數(shù)據(jù)進(jìn)行傳輸。 在分段傳輸
    發(fā)表于 07-01 06:56

    NCS怎么添加.c.h文件到工程

    NCS隨筆】 SEGGER添加方式 在介紹NCS工程之前,我們先看看大家熟悉的SEGGER工程(Keil同理): 左邊的項目欄可以看到工程的配置,通過點擊 User Include
    的頭像 發(fā)表于 06-27 14:48 ?1022次閱讀
    <b class='flag-5'>NCS</b>怎么添加.c.h文件到工程

    PDL電臺設(shè)置更改操作流程

    電子發(fā)燒友網(wǎng)站提供《PDL電臺設(shè)置更改操作流程.pdf》資料免費下載
    發(fā)表于 06-04 16:46 ?29次下載

    更改最大數(shù)據(jù)包大小時無法識別USB設(shè)備如何解決?

    將生產(chǎn)者 EP 端點描述符中的最大數(shù)據(jù)包大小從 1024 字節(jié)更改為 512 字節(jié)時,無法識別 USB 設(shè)備。 請告知如何解決這個問題。
    發(fā)表于 05-20 08:13

    nRF Connect SDK(NCS)/Zephyr固件升級詳解 – 重點講述MCUboot和藍(lán)牙空中升級

    如何在nRF Connect SDK(NCS)中實現(xiàn)藍(lán)牙空中升級?MCUboot和B0兩個Bootloader有什么區(qū)別?MCUboot升級使用的image格式是怎么樣的?什么是SMP協(xié)議?CBOR
    的頭像 發(fā)表于 05-09 14:14 ?3587次閱讀
    nRF Connect SDK(<b class='flag-5'>NCS</b>)/Zephyr固件升級詳解 – 重點講述MCUboot和藍(lán)牙空中升級

    media player 調(diào)用屏幕大小會隨分辨率大小自動調(diào)整無法固定

    在labview中調(diào)用media player控件播放視頻,前面板的大小會根據(jù)分辨率的大小自動調(diào)節(jié)調(diào)用media player面板的大小,無法固定大小,應(yīng)該怎么解決,我試著在后面板里
    發(fā)表于 03-30 13:41

    英特爾?NCS2運行演示時“無法在啟動后找到啟動設(shè)備”怎么解決?

    使用 英特爾? NCS2 運行 推斷管道演示腳本 。 在首次嘗試中成功運行演示應(yīng)用程序。 從第二次嘗試開始遇到錯誤:E: [ncAPI] [ 150951] [security_barrie
    發(fā)表于 03-05 06:48