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

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>STM32 + SIM800C 實(shí)現(xiàn)MQTT協(xié)議資料下載

STM32 + SIM800C 實(shí)現(xiàn)MQTT協(xié)議資料下載

2021-04-19 | pdf | 264.15KB | 次下載 | 5積分

資料介紹

一、本教程中說(shuō)明的內(nèi)容 先說(shuō)說(shuō)本文化的適用范圍吧: 一、使用的芯片STM32F103C8T6,但是并沒(méi)有任何與平臺(tái)相關(guān)的代碼,應(yīng)該在所有STM32芯片中都是可以用的。 二、本文使用的是SIM800C模塊,驅(qū)動(dòng)是用C 實(shí)現(xiàn)的,基于ARM mbed平臺(tái)寫的。但是從原理上來(lái)講,C和C 差別不大,本文的代碼經(jīng)過(guò)修改也可以直接用于其他平臺(tái)的使用。 三、本文數(shù)據(jù)傳輸使用的是“透?jìng)髂J健?,?duì)于所有的透?jìng)髂K,本文都有很大的參考意義。 二、MQTT的使用 首先,推薦一個(gè)MQTT的庫(kù):Paho,這個(gè)庫(kù)支持非常多的平臺(tái),當(dāng)然也包括了嵌入式平臺(tái):GitHub – paho.mqtt.embedded-c。將該庫(kù)中的MQTTPacket文件夾下載下來(lái),MQTTPacket文件夾下面主要有三個(gè)文件夾,我們使用的文件主要集中在src文件夾和samples文件夾中。 src文件夾中存放著MQTT核心功能的代碼,而samples中存放著三個(gè)例子:pub00sub1、pub0sub1_nc、qos0pub和網(wǎng)絡(luò)驅(qū)動(dòng)(transport.c和transport.h)。 由于三個(gè)驅(qū)動(dòng)都有一個(gè)main函數(shù),所以無(wú)法同時(shí)存在,本文中只使用了pub0sub,所以將此文件夾內(nèi)容精減到只有pub0sub1.c、transport.c、transport.h三個(gè)文件。 當(dāng)然,在實(shí)現(xiàn)使用時(shí)可能會(huì)改變目錄結(jié)構(gòu),使目錄結(jié)構(gòu)更加清楚,可以根據(jù)自己的喜好來(lái)進(jìn)行更改,并不影響使用。 將transport.h的內(nèi)容精減到以下內(nèi)容: 主要的工作有: 1、為了方便表示,刪除了版權(quán)信息,有實(shí)際使用時(shí)請(qǐng)保留。 2、沒(méi)有使用pub0sub1_nc這個(gè)例子,所以將transport_getdatanb方法去除。 3、透?jìng)髂K中使用不到socket,所以將與socket相關(guān)的參數(shù)去掉。 這些方法實(shí)現(xiàn)的主要功能是: 1、transport_open的作用是初始化模塊連網(wǎng)的信息、transport_close作用是關(guān)閉鏈接。 2、transport_sendPacketBuffer用于發(fā)送數(shù)據(jù)、transport_getdata用于接收數(shù)據(jù)。 然后用transport.c來(lái)實(shí)現(xiàn)transport.h中聲明的4個(gè)函數(shù)。 三、在ARM mbed中使用MQTT 首先說(shuō)句題外話,自我感覺mbed是一個(gè)非常不錯(cuò)的平臺(tái),很大程度上提高了代碼的可重用性。但也有一個(gè)問(wèn)題,就是其支持是以開發(fā)板為單位的,所以并不是對(duì)每一種芯片的支持都很好。 首先介紹一個(gè)例子,HelloMQTT – a mercurial repository | mbed。但這個(gè)例子其中有很多不完善的地方,而且該例子使用的網(wǎng)絡(luò)驅(qū)動(dòng)也不是GPRS模塊。 如果要用不同的連網(wǎng)方式,那么就寫一個(gè)驅(qū)動(dòng),驅(qū)動(dòng)中至少要包含以下兩個(gè)方法: 這兩個(gè)方法會(huì)在MQTTClient中自動(dòng)調(diào)用,timeout表示毫秒。返回值為讀或?qū)懙淖止?jié)數(shù)。 對(duì)此,我寫了驅(qū)動(dòng)程序: MQTTGRPSEthernet.h #pragma once #if !defined(MQTTGPRSETHERNET_H) #define MQTTGPRSETHERNET_H #define DEFAULT_GPRS_TIMEOUT 6000000 //6s #define SERIAL_BUFFER_SIZE 256 #include "mbed.h" class MQTTGPRSEthernet { public: MQTTGPRSEthernet(PinName tx, PinName rx, int baudrate = 115200); ~MQTTGPRSEthernet(); bool initNet(const char* apn, const char* userName = "", const char* passWord = "", int timeout = DEFAULT_GPRS_TIMEOUT, bool isReconnect = false); bool connect(char* hostname, int port, int timeout = DEFAULT_GPRS_TIMEOUT); int read_line(char* buffer, int timeout = DEFAULT_GPRS_TIMEOUT); int read(unsigned char* buffer, int len, int timeout = DEFAULT_GPRS_TIMEOUT); int write(unsigned char* buffer, int len, int timeout = DEFAULT_GPRS_TIMEOUT); bool disconnect(); private: bool initNet(); Serial eth; bool command(const char* cmd, const char* ack = ""); bool connected = false; bool initialized = false; char* localIP; const char *_apn; const char *_passWord; const char *_userName; }; #endif MQTTGRPSEthernet.cpp 主程序 lient的yield函數(shù)中用調(diào)用messageArrived函數(shù),之前的示例給出的是100,可能是由于間太短的緣故,總是調(diào)用不了回調(diào)函數(shù),所以我將其改的非常大,便于調(diào)試。實(shí)際使用時(shí)可以使用1000。 四、總結(jié) 其實(shí)paho embeded-c用起來(lái)還是挺方便的,但是代碼的重要性不高,所以移植起來(lái)往往會(huì)讓人無(wú)從下手。但深放研究就會(huì)發(fā)現(xiàn)其實(shí)使用起來(lái)是非常簡(jiǎn)單的。 轉(zhuǎn)載自TsonTec:測(cè)量解決方案提供者 (mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1索尼333ESL電路圖資料
  2. 10.11 MB   |  2次下載  |  免費(fèi)
  3. 2TINA-TI 模擬電路設(shè)計(jì)、仿真和分析軟件中文教程
  4. 3.83 MB   |  0次下載  |  5 積分
  5. 3SS6548D40V 直流有刷電機(jī)驅(qū)動(dòng)芯片中文資料
  6. 1.55 MB   |  次下載  |  1 積分
  7. 4SS6235M 4A 33V性價(jià)比超高電機(jī)驅(qū)動(dòng)芯片中文資料
  8. 1.26 MB   |  次下載  |  免費(fèi)
  9. 5FP7195-中文應(yīng)用說(shuō)明書
  10. 0.93 MB   |  次下載  |  免費(fèi)
  11. 6VSA101-G250T01-I 電壓傳感器產(chǎn)品使用手冊(cè)
  12. 0.72 MB   |  次下載  |  免費(fèi)
  13. 7FS4056E系列單節(jié)線線充電IC
  14. 2.41 MB  |  次下載  |  免費(fèi)
  15. 8FS5281E(5V USB輸入雙節(jié)鋰電池串聯(lián)應(yīng)用升壓充電管理IC)
  16. 3.30 MB  |  次下載  |  免費(fèi)

本月

  1. 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
  2. 0.26 MB   |  157次下載  |  10 積分
  3. 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
  4. 0.40 MB   |  33次下載  |  2 積分
  5. 3高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  6. 2.27 MB   |  33次下載  |  5 積分
  7. 4STM32F10x參考手冊(cè)資料
  8. 13.64 MB   |  12次下載  |  1 積分
  9. 5光伏并網(wǎng)逆變器原理
  10. 7.31 MB   |  7次下載  |  2 積分
  11. 6SW5099規(guī)格書
  12. 1.37 MB   |  6次下載  |  1 積分
  13. 7星火6J3-1交直流二波段收音機(jī)電路圖資料
  14. 1.86 MB   |  6次下載  |  免費(fèi)
  15. 8S7-200 可編程序控制器系統(tǒng)手冊(cè)
  16. 12.81 MB   |  5次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191422次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分