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

歷史上的今天

今天是:2025年06月13日(星期五)

2019年06月13日 | STM32使用TCP透傳方式與ONENET進行連接的簡單教程

發布者:andyliow1980 來源: eefocus關鍵字:STM32  TCP  透傳方式  ONENET 手機看文章 掃描二維碼
隨時隨地手機看文章

推薦使用本文之前有一定的嵌入式基礎,請先確保了解以下名詞(提前百度):cJSON,EDP,TCP透傳

首先在ONENET平臺上創建一個TCP透傳的產品,這段在ONENET開發者中心上有很多教程,就不再贅述。

下載一個EdpProtoDebugger

先使用這個工具與ONENET建立連接,具體教程

可以看到,實際上建立與平臺的連接就是通過一個簡單的EDP數據包實現的,我們在嵌入式應用中,只需要先和ONENET的服務器連接,然后發送這一串設備認證的數據包,你的設備就上線了,之后就可以通過發送JSON格式的數據或者是發送分號間隔字符串的方式來進行數據傳輸

tip:本文只介紹以分號間隔字符串的方式發送數據,ONENET服務器下發的命令是JSON 格式的,如果想給設備下發命令,需要移植cJSON解碼。

使用的芯片是stm32f103c8t6,正點原子的esp8266模塊

開始講解程序


#include "esp8266.h"

 

 

uint8_t rxbuffer[200];

uint8_t its2=2;

uint8_t checksd[]={0X10,0X31,0X00,0X03,0X45,0X44,0X50,0X01,0X40,0X00,0X80,0X00,0X08,0X32,0X33,0X37,0X37,0X36,0X31,0X34,0X37,0X00,0X1C,

0X62,0X68,0X35,0X42,0X34,0X63,0X4A,0X53,0X4F,0X52,0X79,0X31,0X59,0X56,0X6F, 0X4E ,0X45, 0X30, 0X4B, 0X7A, 0X6C, 0X54, 0X6F, 0X64,

0X6D, 0X67, 0X34, 0X3D };  //Log in Message Get From EDPDEBUGGER

 

//--------------------DO NOT USE THIS FUNCTION WHILE SENDING DATA !-------------------------------

 

void Uart_To_Oled(void) //read uart rxbuffer and print it in OLED  

{

// OLED_CLS();

USART1->DR=0x0000;

HAL_UART_Receive(&huart1,rxbuffer,200,1000);

OLED_ShowStr(0,0,rxbuffer,1);

memset(rxbuffer,0,sizeof(uint8_t)*200);

}

//------------------------------------------------------------------------------------------------

 

/*********************Initialize Esp8266*******************************************

****** AT **************  return  OK         *************************************

******  AT+CWMODE=3******  AP+STATION MODE    *************************************

******  AT+RST***********  RESET TO INIT CHANGE ***********************************

******  AT+CWJAP*********  JOIN AP             ************************************

******  AT+CIFSR*********  return AP INFORMATION **********************************

******  AT+CIPSTART x 5**  CONNECT TO SERVER     **********************************

******  AT+CIPMODE=1*****  EDP MODE             ***********************************

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

 

void esp8266_Init(void) 

{

    HAL_UART_Transmit(&huart1, CMD_AT,strlen(CMD_AT),1000);

Uart_To_Oled();

    HAL_Delay(200);

    HAL_UART_Transmit(&huart1, CMD_CWMODE,strlen(CMD_CWMODE),1000);

Uart_To_Oled();

    HAL_Delay(200);

    HAL_UART_Transmit(&huart1, CMD_RST,strlen(CMD_RST),1000);

Uart_To_Oled();

    HAL_Delay(200);

//   HAL_UART_Transmit(&huart1, CMD_CWJAP,strlen(CMD_CWJAP),1000);

// Uart_To_Oled();

//   HAL_Delay(1000);

 

    HAL_UART_Transmit(&huart1, CMD_CIFSR,strlen(CMD_CIFSR),1000);

Uart_To_Oled();

    HAL_Delay(5000);

// OLED_CLS();

// static uint8_t is=5;

// while(is!=0)

// {

HAL_UART_Transmit(&huart1, CMD_CIPSTART,strlen(CMD_CIPSTART),1000);

Uart_To_Oled();

HAL_Delay(200);

// OLED_CLS();

// is--;

// }

 

    HAL_UART_Transmit(&huart1, CMD_CIPMODE,strlen(CMD_CIPMODE),1000);

Uart_To_Oled();

    HAL_Delay(200);

HAL_UART_Transmit(&huart1, CMD_CIPSEND,strlen(CMD_CIPSEND),1000);

Uart_To_Oled();

HAL_Delay(200);

// while(its2!=0)

// {

HAL_Delay(100);

HAL_UART_Transmit(&huart1, checksd,sizeof(checksd),1000);

// Uart_To_Oled();

//OLED_CLS();

// its2--;

// }

// OLED_CLS();

}

因為只是一個簡單的demo,這里沒有移植完整的EDP數據包生成和解包函數,僅僅是用EdpPrototypeDebugger生成了一個固定的數據包,這個數據包連接到的是我預先創建好的測試設備,請自行更改數據包


測試部分,使用了stm32中自帶的溫度傳感器,用freertos建立了兩個個任務,


任務一讀取接收到的信息(因為這個工程中沒有移植cJSON,讀到的數據是cJSON格式,請自行解碼)


任務二不斷采集傳感器信息并發送到服務器(因為這個工程中沒有移植EDPkit,是用EdpPrototypeDebugger生成了一個定長數據,并進行替換)



/**

  ******************************************************************************

  * File Name          : freertos.c

  * Description        : Code for freertos applications

  ******************************************************************************

  * This notice applies to any and all portions of this file

  * that are not between comment pairs USER CODE BEGIN and

  * USER CODE END. Other portions of this file, whether 

  * inserted by the user or by software development tools

  * are owned by their respective copyright owners.

  *

  * Copyright (c) 2017 STMicroelectronics International N.V. 

  * All rights reserved.

  *

  * Redistribution and use in source and binary forms, with or without 

  * modification, are permitted, provided that the following conditions are met:

  *

  * 1. Redistribution of source code must retain the above copyright notice, 

  *    this list of conditions and the following disclaimer.

  * 2. Redistributions in binary form must reproduce the above copyright notice,

  *    this list of conditions and the following disclaimer in the documentation

  *    and/or other materials provided with the distribution.

  * 3. Neither the name of STMicroelectronics nor the names of other 

  *    contributors to this software may be used to endorse or promote products 

  *    derived from this software without specific written permission.

  * 4. This software, including modifications and/or derivative works of this 

  *    software, must execute solely and exclusively on microcontroller or

  *    microprocessor devices manufactured by or for STMicroelectronics.

  * 5. Redistribution and use of this software other than as permitted under 

  *    this license is void and will automatically terminate your rights under 

  *    this license. 

  *

  * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" 

  * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT 

  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 

  * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY

  * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT 

  * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 

  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 

  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 

  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,

  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

  *

  ******************************************************************************

  */

 

/* Includes ------------------------------------------------------------------*/

#include "FreeRTOS.h"

#include "task.h"

#include "cmsis_os.h"

 

/* USER CODE BEGIN Includes */     

#include "gpio.h"

//#include "OLED_I2C.h"

#include "usart.h"

#include "esp8266.h"

#include "adc.h"

/* USER CODE END Includes */

 

/* Variables -----------------------------------------------------------------*/

osThreadId defaultTaskHandle;

osThreadId SendTempHandle;

osMessageQId myQueue01Handle;

 

/* USER CODE BEGIN Variables */

extern uint8_t rxbuffer[];

uint8_t message[27]={0X80,0X19,0X80,0X00,0X08,0X32,0X33,0X37,0X37,0X36,0X31,0X34,0X37,0X05,

0X00,0X0B,0X2C,0X3B,0X74,0X65,0X6D,0X70,0X2C,0X31,0X32,0X33,0X34 }; //Data Format Form EDPDEBUGGER

 

/* USER CODE END Variables */

 

/* Function prototypes -------------------------------------------------------*/

void StartDefaultTask(void const * argument);

void Tempsend(void const * argument);

 

void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */

 

/* USER CODE BEGIN FunctionPrototypes */

 

/* USER CODE END FunctionPrototypes */

 

/* Hook prototypes */

 

/* Init FreeRTOS */

 

void MX_FREERTOS_Init(void) {

  /* USER CODE BEGIN Init */

       

  /* USER CODE END Init */

 

  /* USER CODE BEGIN RTOS_MUTEX */

  /* add mutexes, ... */

  /* USER CODE END RTOS_MUTEX */

 

  /* USER CODE BEGIN RTOS_SEMAPHORES */

  /* add semaphores, ... */

  /* USER CODE END RTOS_SEMAPHORES */

 

  /* USER CODE BEGIN RTOS_TIMERS */

  /* start timers, add new ones, ... */

  /* USER CODE END RTOS_TIMERS */

 

  /* Create the thread(s) */

  /* definition and creation of defaultTask */

  osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);

  defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);

 

  /* definition and creation of SendTemp */

  osThreadDef(SendTemp, Tempsend, osPriorityNormal, 0, 128);

  SendTempHandle = osThreadCreate(osThread(SendTemp), NULL);

 

  /* USER CODE BEGIN RTOS_THREADS */

  /* add threads, ... */

  /* USER CODE END RTOS_THREADS */

 

  /* Create the queue(s) */

  /* definition and creation of myQueue01 */

  osMessageQDef(myQueue01, 16, uint8_t);

  myQueue01Handle = osMessageCreate(osMessageQ(myQueue01), NULL);

 

  /* USER CODE BEGIN RTOS_QUEUES */

  /* add queues, ... */

  /* USER CODE END RTOS_QUEUES */

}

 

/* StartDefaultTask function */

void StartDefaultTask(void const * argument)

{

 

  /* USER CODE BEGIN StartDefaultTask */

 

  /* Infinite loop */

  for(;;)

  {

    osDelay(100);

HAL_UART_Receive(&huart1,rxbuffer,200,1000);

OLED_ShowStr(0,0,rxbuffer,2);

memset(rxbuffer,0,sizeof(uint8_t)*200);

// OLED_CLS();

  }

  /* USER CODE END StartDefaultTask */

}

 

/* Tempsend function */

void Tempsend(void const * argument)

[1] [2]
關鍵字:STM32  TCP  透傳方式  ONENET 引用地址:STM32使用TCP透傳方式與ONENET進行連接的簡單教程

上一篇:用stm32Cube生成103c8t6的usb驅動
下一篇:STM32F103內部FLASH及地址表

推薦閱讀

三星在中國大陸的市場極速下滑,蘋果也屢屢被曝iPhone X銷量不及預期,遭遇砍單等消息,但是從Counterpoint日前發布的4月份全球智能機出貨量報告來看,兩家依舊是過得非常滋潤。  從數據來看,4月份的全球銷量前十中,除了國產手機小米紅米5A和紅米5 Plus拿下了兩個席位而外,其余名額全被三星和蘋果兩家占據,其中iPhone 6和三星Galaxy S8的銷量說...
發改委、生態環境部、商務部于6月6日印發《推動重點消費品更新升級暢通資源循環利用實施方案(2019-2020年)》。本次實施方案聚焦汽車、家電、消費電子產品領域。大力推動汽車產業電動化、 智能化、綠色化,積極發展綠色智能家電,加快推進5G手機商業應用。推動重點消費品更新升級暢通資源循環利用實施方案(2019-2020年)汽車方面提到,將大幅降低新能源...
據微信公眾號深圳灣消息,昨日吳雄昂在向安謀中國內部員工發布的郵件中首次正面回應了近日的免職風波。吳雄昂在內部信中表示,Arm 公司及厚樸投資發出的針對其的指控是莫須有的,并且對公司和其本人的聲譽造成了極大的負面影響。安謀中國公司及自己從未收到任何我因何事被投訴的通知,也沒有收到任何對所謂的投訴進行調查的通知,更沒有收到過任何對所謂...
工業機器人是面向工業領域的多關節機械手或多自由度的機器人。工業機器人是自動執行工作的機器裝置,是靠自身動力和控制能力來實現各種功能的一種機器。它可以接受人類指揮,也可以按照預先編排的程序運行,現代的工業機器人還可以根據人工智能技術制定的原則綱領行動。隨著國內人口紅利的褪去,人力成本加速上漲,并且隨著國內制造業的轉型,國內的制造業...

史海拾趣

問答坊 | AI 解惑

電路“集成”使軍事力量倍增

電路“集成”使軍事力量倍增       自從60年代第一塊集成電路問世,30多年來,微電子技術得到了飛速發展,首先在軍事上得到廣泛的應用,促成了精確制導武器、C4I系統等一系列高技術武器裝備的發展,使作戰效能 ...…

查看全部問答∨

C語言問題

用迭代公式求x=根號a,求平凡根的迭代公式為 Xn+1=(Xn + a/Xn)/2 要求前后兩次求出的X的差的絕對值小于10負5次方說明;其中n+1,n是X的下標   由于沒有數學編輯軟件 不好意思…

查看全部問答∨

常用器件選型表09.05版 轉載

本帖最后由 paulhyde 于 2014-9-15 09:06 編輯 嗯,轉載的,版權歸原作者所有哈  …

查看全部問答∨

1602的學習總結(菜鳥入門級)

先來敘述一些概念。 LCM和LCD的區別 LCM【Liquid Crystal Module】液晶顯示模塊,通常包括顯示驅動電路,接口電路等等。往往做成一個整體模塊的形式,包括LCD液晶屏,屏的框架,線路板,驅動IC,控制IC等一系列,一般還有背光電路,其中IC的 ...…

查看全部問答∨

嵌入式系統接口設計與Linux驅動程序開發

嵌入式系統接口設計與Linux驅動程序開發   有誰有著本書的電子版!在下急用謝謝!…

查看全部問答∨

HT9200A雙音多頻產生器具有編碼能力嗎?

大家好,我們做的報警器的手持機子上只用到了:STC12C5A08S2,WD3601T,HT9200A,等。但是沒有用到編碼器。我在想是STC12C5A08S2本身具有編碼能力還是HT9200A可以編碼。我下載了HT9200A的DATASHEET,看了下,沒有看懂,請大家幫個忙!謝謝!…

查看全部問答∨

急求用C8051F930往SIM300寫AT指令的程序,請問有人會嗎

想用C8051F930向SIM300寫AT指令 請問有人有這個或類似程序嗎  或者有人會寫嗎  急求啊…

查看全部問答∨

用VS2005 WINCE 5.0 平臺 連接GPS

我將GPS用USB線插入電腦并且安裝了 activesync.并且USB口COM3口都是可用的。在VS2005中建了一個wince 5.0的設備應用程序的項目。我想做一個簡單的程序安裝到GPS中試驗一下,但是老連接不到設備。請各位大大幫忙教教該怎么做或提供些可學習的資料好 ...…

查看全部問答∨

89S51的p3.0腳和p3.1腳是用來進行RS232通訊的,請問在這兩個腳能不能直接跟計算機連接,如果不能,是不是要在和計算機連接之間連上一個232接口芯片呢

89S51的p3.0腳和p3.1腳是用來進行RS232通訊的,請問在這兩個腳能不能直接跟計算機連接,如果不能,是不是要在和計算機連接之間連上一個232接口芯片呢?目前流行的232接口芯片有哪些?如果是485通訊又該用什么芯片?和計算機的連接通訊腳是否可以隨 ...…

查看全部問答∨

有研究tcpmp的嗎?一起來學習

有研究tcpmp在mips平臺下,wince系統下的同行嗎? 加我的QQ:30430268…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 榆中县| 福鼎市| 大宁县| 三台县| 若羌县| 利津县| 中江县| 商都县| 长乐市| 长沙县| 板桥市| 敖汉旗| 绥芬河市| 高碑店市| 广德县| 弋阳县| 乳山市| 常山县| 宿迁市| 杭州市| 太谷县| 鄂托克旗| 西乌珠穆沁旗| 扎鲁特旗| 横峰县| 万荣县| 尼玛县| 凤冈县| 贵阳市| 沙洋县| 九江县| 苍南县| 赤峰市| 基隆市| 垫江县| 武宁县| 韩城市| 兴山县| 锦州市| 祁阳县| 黑龙江省|