娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32F103學習筆記(9)——NB-IoT模塊BC26使用

發布者:心靈舞動最新更新時間:2025-02-11 來源: jianshu關鍵字:STM32F103  NB-IoT模塊  BC26 手機看文章 掃描二維碼
隨時隨地手機看文章

一、簡介

BC26 是一款高性能、低功耗、多頻段 LTE Cat NB1/Cat NB2*無線通信模塊。其尺寸僅為 17.7 mm × 15.8 mm × 2.0 mm,能最大限度地滿足終端設備對小尺寸模塊產品的需求,同時有效幫助客戶減小產品尺寸并優化產品成本.BC26 在封裝設計上兼容移遠通信 GSM/GPRS 系列 M26 模塊以及 NB-IoT 系列 BC28/BC25/BC260Y-CN 模塊,方便客戶快速、靈活的進行產品設計和升級。BC26 提供豐富的外部接口和協議棧,同時可支持中國移動 OneNET/Andlink、中國電信 IoT/ AEP以及阿里云IoT等物聯網云平臺,為客戶的應用提供極大的便利。

BC26 采用更易于焊接的 LCC 封裝,可通過標準 SMT 設備實現模塊的快速生產,為客戶提供可靠的連接方式,并滿足復雜環境下的應用需求。

憑借緊湊的尺寸、超低功耗和超寬工作溫度范圍,BC26 成為 IoT 應用領域的理想選擇,常被用于煙感、無線抄表、共享單車、智能停車、智慧城市、安防、資產追蹤、智能家電、可穿戴設備、農業和環境監測以及其它諸多行業,以提供完善的短信和數據傳輸服務。

BC26資料:鏈接:https://pan.baidu.com/s/1n8rcRCna8wnMPFwikY3l0g?pwd=vgcm 提取碼:vgcm

二、AT指令

發送數據時務必勾選:“加回車換行符”。否則模塊不會響應。在本文中,僅顯示響應,省略回車換行符。

2.1 AT

測試AT指令功能是否正常,等待模塊返回 OK。


AT

OK

2.2 AT+CIMI

該命令用于查詢(U)SIM 卡的國際移動用戶識別碼(IMSI,無雙引號的字符串)。IMSI 允許 TE 識別連
接到 MT 的 USIM。


AT+CIMI460001357924680OK

2.3 AT+CGATT=1

設置命令用于將 MT 附著于 PS 域。命令完成后,MT 保持在 V.250 命令狀態。如果 MT 已經處于請求狀態,則忽略該命令,并且仍將響應 OK。如果 MT 無法實現請求狀態,將響應 ERROR 或+CME ERROR。


AT+CGATT=1OK

2.4 AT+CGATT?

查詢命令返回當前 PS 域服務狀態。


AT+CGATT=?+CGATT: 如:+CGATT: 1OK

整型。PDP 上下文激活狀態。

  • 0 去附著

  • 1 附著

2.5 AT+CEREG?


AT+CEREG?+CEREG: ,如:+CEREG: 0,1如:+CEREG: 1,1OK

整型。禁止或允許上報網絡注冊狀態等信息。

  • 0 禁止上報網絡注冊狀態 URC

  • 1 允許上報網絡注冊狀態 URC +CEREG:

  • 2 允許上報網絡注冊狀態和位置信息 URC +CEREG: [,[],[],[]]

  • 3 允許上報網絡注冊狀態、位置信息和 EMM 原因值 URC +CEREG: [,[],[],[][,,]]

  • 4 對于請求 PSM 的 UE,允許上報網絡注冊狀態和位置信息 URC +CEREG: [,[],[],[][,,[,[],[]]]]

  • 5 對于請求 PSM 的 UE,允許上報網絡注冊狀態、位置信息和 EMM 原因值 URC +CEREG: [,[],[],[][,[],[][,[, []]]]

整型。EPS 注冊狀態。

  • 0 未注冊,MT 當前未搜索網絡

  • 1 已注冊,歸屬網絡

  • 2 未注冊,但 MT 當前正在嘗試附著或搜索網絡以進行注冊

  • 3 注冊被拒絕

  • 4 未知(例如:超出 E-UTRAN 覆蓋范圍)

  • 5 已注冊,漫游狀態

2.6 AT+QIPADDR

查詢 UE 的 IP 地址

AT+QIPADDR


+QIPADDR: fe80:0:0:0:3c:ffb8:f4c9:1207


+QIPADDR: 2001:14bb:170:4c91:3c: ffh8:f4c9:1207


+QIPADDR: 178.55.211.180


+QIPADDR: 127.0.0.1


OK


2.7 AT+QIOPEN

該命令用于打開套接字服務。

  • AT+QIOPEN=?:查詢命令參數。

  • AT+QIOPEN=,,,/,[,[,]] :打開 Socket 服務。

    • 0: 緩沖區訪問模式

    • 1:直推模式

    • 2:透明訪問模式

    • 如果是“TCP LISTENER”或“UDP SERVICE”,則此參數必須指定。

    • 如果是“TCP”或“UDP”。如果為0,那么本地端口將是自動分配。否則,將按指定分配本地端口。

    • 如果是TCP或UDP ,則表示遠程服務器的IP地址,例如 “220.180.239.212”。

    • 如果是TCP LISTENER或UDP SERVICE 地址,請輸入“127.0.0.1”。

    • “ TCP ” :作為客戶端啟動TCP連接

    • “ UDP ”:作為客戶端啟動UDP連接

    • “TCP LISTENER”  :啟動TCP服務器以偵聽TCP連接

    • “UDP SERVICE” :啟動UDP服務

    •  :整數類型。上下文ID。范圍是1-16。

    •  :整數類型。套接字服務索引。范圍是0-11。

    • :字符串類型。套接字服務類型。

    • :字符串類型。

    • :字符串類型。遠程服務器的域名地址。

    • :遠程服務器的端口,僅在為“TCP”或“UDP”時有效。范圍是0-65535。

    •  :本地端口。范圍是0-65535。

    • :整數類型。套接字服務的數據訪問模式。

    • :整數類型。操作的錯誤代碼。請參閱第4章。


AT+QIOPEN=1,0,'TCP','180.97.81.180',53540,0,1OK+QIOPEN: 0,0

Buffer模式,Push模式,透傳模式。通過參數進行配置。





2.8 AT + QISEND

如果指定套接字服務的是緩沖區訪問模式或直接推送模式,則數據可以是通過AT + QISEND發送。如果數據成功發送到模塊,將返回“ SEND OK ” 。否則它將返回“ SEND FAIL ” 或“ ERROR ” 。“ SEND FAIL ” 表示發送緩沖區已滿客戶可以嘗試重新發送數據?!癊RROR”表示在發送過程中遇到錯誤  數據??蛻魬撗舆t一段時間來發送數據。最大數據長度為1460字。“SEND OK”并不意味著數據已成功發送到服務器??蛻艨梢圆樵償祿欠裢ㄟ^AT + QISEND = ,0命令到達服務器。透傳模式下不需要AT指令發送數據


三、TCP應用時序圖

四、復位模塊

通過拉低 RESET 引腳至少 50ms 可以使模塊復位。


五、移植文件

5.1 board_bc26.c

/*********************************************************************

 * INCLUDES

 */

#include 'stdlib.h'

#include 'string.h'

#include 'stm32f10x.h'

#include 'FreeRTOS.h'

#include 'task.h' 


#include 'board_bc26.h' 


static uint8_t sendCmd(char *pCmd, char *pRes, char *pRes2, uint32_t timeOut, uint8_t sendNum);

static void clearBuffer(void);

static void reset(void);


/*********************************************************************

 * GLOBAL VARIABLES

 */  

uint8_t g_usart2RecvFinish = 0;                                                 // 串口2接收標志串口接收完成標志

char g_bc26Buf[1024] = {0};                                                     // 接收緩存

volatile uint32_t g_bc26Cnt;                                                    // 接收計數                                 


/*********************************************************************

 * PUBLIC FUNCTIONS

 */

/**

 @brief 初始化

 @param 無

 @return 1 - 成功;0 - 失敗

*/

uint8_t BC26_Init(void)

{       

    printf('BC26_Initrn');

    uint8_t result = 0;

    uint8_t step = 0;

    switch(step)

    {

        case 0:

            if(sendCmd('ATrn', 'OK', NULL, 10, 6))                            // 測試AT指令功能是否正常

            {

                step++;

            }

            else

            {

                printf('Err:ATrn');

                reset();

                break;

            } 

        case 1:

            if(sendCmd('AT+CIMIrn', 'OK', NULL, 20, 1))                       // 查詢SIM卡是否正常,返回OK則表示SIM卡正常

            {

                step++;

            }

            else

            {

                printf('Err:AT+CIMIrn');                                      // 20秒內,無法識別SIM狀態,重啟模塊

                reset();

                break;

            }

        case 2:

            if(sendCmd('AT+CGATT=1rn', 'OK', '+IP:', 60, 1))                  // 激活PDP場景

            {

                step++;                                                 

            }

            else

            {

                printf('Err:AT+CGATT=1rn');        

                step++;                                                         

            }

        case 3:

            if(sendCmd('AT+CEREG?rn', '+CEREG: 0,1', '+CEREG: 1,1', 60, 3))   // 查詢模組是否注冊上EPS網絡

            {

                step++;                                                 

            }

            else

            {

                printf('Err:AT+CEREG?rn');      

                step++;                                                         

            }

        case 4:

            if(sendCmd('AT+CGATT?rn', '+CGATT: 1', NULL, 85, 3))              // 查詢當前PS域服務狀態

            {

                step++;

            }

            else

            {

                printf('Err:AT+CGATT?rn');                                    // 如果3次都沒停止成功或超過85秒沒有回應,則重啟模塊

                reset();

                break;

            }

        case 5:

            if(sendCmd('AT+QIPADDRrn', '+QIPADDR:', NULL, 60, 3))             // 查詢本機IP地址

            {

                BC26_Connect();

                result = 1;

[1] [2] [3]
關鍵字:STM32F103  NB-IoT模塊  BC26 引用地址:STM32F103學習筆記(9)——NB-IoT模塊BC26使用

上一篇:STM32CubeMX學習筆記(43)——USB接口使用(CDC虛擬串口)
下一篇:STM32CubeMX學習筆記(42)——ETH接口+LwIP協議棧使用(靜態IP)

推薦閱讀最新更新時間:2025-04-23 20:33

基于STM32的NB-IoT模塊驅動
一、概述 目前這個NB-IoT在國內還是比較火的,最近剛好使用了一款NB-IoT模塊。將驅動程序貢獻給大家。希望能對用到的朋友有點幫助。 二、NB-IoT模塊介紹 本次采用的是有人物聯網公司的WHNB75模塊。(支持電信網絡)WH-NB75 是基于 WH-NB73 模塊開發出來的 DIP 封裝的模塊產品,該產品能夠更方便的嵌入到客戶產品中。WH-NB75 是我們 NB75 模塊系列的一個總稱,針對不同運營商網絡有不同的模塊型號對應。請在選購模塊時注意選擇支持當地運營商的模塊。穩恒正在基于海思 Hi2115 芯片打造支持全頻段的 NB 模組 WH-NB71,到時候可以一款模塊支持多家運營商的網絡。下表為不同型號產品對應的運營商。
[單片機]
QORVO多款射頻模塊NB-IoT無線通訊模塊采用
?實現互聯世界的創新RF解決方案提供商Qorvo, Inc.近日宣布,其功率放大器模塊RF3628、QM52015和SP4T開關RF1648B被SIMCom(芯訊通)最新推出的業內首款基于高通MDM9206平臺研發的LTE CAT-M1/NB-IoT/EDGE無線通訊模塊SIM7000C所采用。下面就隨模擬電子小編一起來了解一下相關內容吧。 SIMCom的SIM7000C是世界首款基于高通MDM9206平臺研發的支持CAT-M1(eMTC)/NB-IoT/EGDE模塊,采用SMT封裝,集性能穩定、外觀小巧、性價比高、極低功耗等特性于一體,能滿足用戶的多種需求。在該款模塊中,Qorvo提供的單芯片組支持多種模式和頻段,通過單一電路
[模擬電子]
stm32f103——串口UART
在學習UART之前,我們先來了解一下單片機與外圍設備之間的通信: 單片機與外圍設備之間的信息交換和傳輸我們稱為通信。過去通信方式有兩種:并行通信和串行通信。 并行通信: 定義:并行通信是指利用多條傳輸線將一個數據的各位同時傳送。 傳輸方式:傳輸一個字節(8個位)的數據時,并口是將8個位一字排開,分別在8條連接線上同時傳輸。 特點:傳輸速度塊,適用于短距離通信。 缺點:雖然,并行通信傳輸速度快,但是由于,線與線之間存在電磁干擾,會導致數據錯誤。而且由于線比較多,PCB布線比較麻煩,所以并行通信不常用,而串行通信用得比較廣泛。 串行通信: 定義:串行通信是指利用一條傳輸線將數據一位位地順序傳送。 傳輸方式:傳輸一個字節(8
[單片機]
<font color='red'>stm32f103</font>——串口UART
stm32f103c8t6利用藍牙控制180度舵機
關于藍牙模塊部分,如果不了解藍牙模塊的可以看我之前發的東西。 一般來說,舵機接收的PWM信號頻率為50HZ,即周期為20ms。當高電平的脈寬在0.5ms-2.5ms之間時舵機就可以對應旋轉到不同的角度。以180度角度舵機為例,那么對應的控制關系是這樣的: 0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2.0ms-----------135度; 2.5ms-----------180度; 關于舵機的話,本人用的是6~8.4V的的60KG大舵機,這里需要注意的是, 控制板上面只提供5V電壓,滿足不了這種舵機的電壓,所以我利用12V的鋰電池,讓鋰
[單片機]
<font color='red'>stm32f103</font>c8t6利用藍牙控制180度舵機
stm32f103c8t6控制多個步進電機
關于兩相步進電機的詳細內容,相信在網上一大堆可以找得到,這里我主要介紹的是實踐部分。 首先,我們需要認清步進電機的四根線,一般來說四根線顏色基本都為紅、藍、綠、黑,對應的分別是A+,A-,B+,B-,一些步進電機上面會標哪根線對應哪個相,比如我用的步進電機是這款的 其實哪款步進電機都無所謂,原理都是差不多的,主要看電機的電流是否滿足步進電機驅動器的要求。 我用的步進電機驅動器是以下這款,之所以用這款是因為這款步進電機驅動器體積相對比較小并且滿足要求,從上面我們可以看到我上面的步進電機的工作電流是2.3A,而從步進電機驅動器的面板上面可以看出他最大可以工作在3A電流。 步進電機驅動器淘寶鏈接:步進電機驅動器 驅動器
[單片機]
<font color='red'>stm32f103</font>c8t6控制多個步進電機
STM32F103單片機PWM功能實現
PWM模式也叫脈沖寬度調制模式,它可以產生一個頻率和占空比可調的方波。由TIMx_ARR寄存器確定頻率、由TIMx_CCRx寄存器確定占空比的信號。在硬件電路中,PWM波產生通常是由一個三角波和參考值送入比較器中,然后比較器輸出的就是PWM波。 V1是三角波發生器,幅度為5V,頻率為1K,V2是直流源,電壓為3V,將這兩個波形送入到比較器中,然后比較器輸出的就是PWM波。輸出波形如下: 當V1的電壓值大于V2時,比較器輸出高電平。當V1電壓值小于V2時,比較器輸出的就是低電平。改變V2的值,就可以改變占空比。 在單片機中寄存器ARR的值就相當于V1的值,CCR的值就相當于V2的值。當ARR和CCR寄存器的值設置好之后,
[單片機]
<font color='red'>STM32F103</font>單片機PWM功能實現
基于STM32F103 PWM呼吸燈設計
1、線性呼吸燈 bsp.c #include includes.h void RCC_Configuration(void); /* 初始化系統時鐘 */ void TIM3_Configuration(void); /* PWM配置 */ void BSP_Init (void) { RCC_Configuration(); /* 初始化系統時鐘 */ TIM3_Configuration(); /* PWM配置 */ } /***********************************************************************************
[單片機]
stm32f103c8t6內部flash讀寫實例
單片機源程序如下: /************************************************************************************ #include stm32f10x.h #include delay.h #include HX711.h #include usart.h #include key.h #include flash_S.h int main(void) { u8 i,t; u8 len; u16 times=0; delay_init(); NVIC_Configu
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 原平市| 秭归县| 文昌市| 娄底市| 南京市| 行唐县| 尼木县| 北安市| 麻阳| 黄浦区| 新平| 土默特右旗| 鹤庆县| 长丰县| 通辽市| 阳新县| 南涧| 怀仁县| 荆州市| 武隆县| 灵武市| 巴彦淖尔市| 巴林右旗| 莱西市| 扶风县| 新闻| 盐城市| 宜昌市| 原阳县| 宁远县| 昭觉县| 白水县| 玛曲县| 温宿县| 布尔津县| 外汇| 葵青区| 清原| 大同市| 神池县| 普兰县|