chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

NCS更改MTU大小

TedLee ? 來(lái)源: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過(guò)小的影響

當(dāng)MTU設(shè)置過(guò)小時(shí),會(huì)導(dǎo)致以下問(wèn)題:

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

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

MTU

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

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

二、如何修改MTU大小

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

在prj.conf添加如下幾個(gè)宏:

CONFIG_BT_L2CAP_TX_MTU=247
CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_BUF_ACL_TX_SIZE=251

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

有兩個(gè)辦法

1.1 第一個(gè)辦法:固定MTU大小

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

CONFIG_BT_GATT_AUTO_UPDATE_MTU=y

在這里插入圖片描述

使用Kconfig search 查詢(xún)MTU,可以看到下面的描述連接后自動(dòng)申請(qǐng)MTU大小,為什么我要多此一舉呢,因?yàn)橛行┛蛻?hù)不需要申請(qǐng)這么大的MTU,需要?jiǎng)討B(tài)去修改MTU大小或者自己隨著在某個(gè)操作里面修改MTU大小,

2、第二個(gè)辦法:使用函數(shù)從機(jī)主動(dòng)向主機(jī)申請(qǐng)?jiān)黾覯TU大小

2.1 添加宏

CONFIG_BT_GATT_CLIENT

2.2 在函數(shù)里面添加如下代碼,然后再connect回調(diào)時(shí)間里面調(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)用:
在這里插入圖片描述

三、測(cè)試

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

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ù)注冊(cè)回調(diào):

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

3.4 添加自動(dòng)連接更新MTU的宏&自己在連接添加MTU更換的宏

在這里插入圖片描述

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • NCS
    NCS
    +關(guān)注

    關(guān)注

    1

    文章

    22

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

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

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

    NCS隨筆】NCS使用CJSON庫(kù)

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

    NCS放大器DAD3350使用效果

    NCS放大器DAD3350在使用效果上展現(xiàn)出顯著優(yōu)勢(shì),具體體現(xiàn)在以下幾個(gè)方面: ? 一、信號(hào)增強(qiáng)與穩(wěn)定性提升 ? ? 精準(zhǔn)信號(hào)放大 ? NCS放大器DAD3350能夠?qū)⑤斎胄盘?hào)的電壓或功率有效放大
    的頭像 發(fā)表于 07-12 09:36 ?646次閱讀

    NCS放大器DAD3350使用場(chǎng)景與效果

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

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

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

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

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

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

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

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

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

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

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

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

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

    media player 調(diào)用屏幕大小會(huì)隨分辨率大小自動(dòng)調(diào)整無(wú)法固定

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

    英特爾?NCS2運(yùn)行演示時(shí)“無(wú)法在啟動(dòng)后找到啟動(dòng)設(shè)備”怎么解決?

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