ESP8266/8266串列埠透傳 RTOS_SDK開發
編輯工具:source insight3.5
晶片:ESP8285,內建1M FLASH 沒有外接FLASH
通過串列埠做透傳,流程是在user_main()函式初始化為STA+AP模式,新建任務,在任務中實現透傳,透傳流程,通過串列埠一個位元組一個位元組的讀出資料,通過一個快取接受資料並通過socket用TCP傳遞給路由。
第一次用的是串列埠終端傳輸,中斷傳輸的話最多接受127個位元組。任務情況下可以任意多個位元組。可能有更好的API實現方式,希望大家多多指教。void vTask_station( void * pvParameters ) { //sockt config LOCAL int32 sock_fd; struct sockaddr_in server_addr; int nNetTimeout = 1000; int fromlen; int ret; uint8 fifo_len; char TC_data[256] = {0}; uint8 fifo_i = 0; uint8 data_i = 0; //ap confi while(wifi_station_get_connect_status() != STATION_GOT_IP) { vTaskDelay(2); } sock_fd = socket(AF_INET, SOCK_STREAM, 0); if(sock_fd < 0) { printf("ESP8266 TCP task socket > failed to create sock!\n"); vTaskDelay(1000/portTICK_RATE_MS); while(1); } struct sockaddr_in servaddr; memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(5188); servaddr.sin_addr.s_addr =inet_addr("172.26.36.1"); servaddr.sin_len = sizeof(server_addr); do{ ret = connect(sock_fd, (struct sockaddr *)&servaddr, sizeof(servaddr)); printf("connect ret = %d\n",ret); }while(ret < 0); while(1) { //讀取串列埠管道長度 fifo_len = (READ_PERI_REG(UART_STATUS(UART0)) >> UART_RXFIFO_CNT_S)&UART_RXFIFO_CNT; //如果管道中有資料將資料快取到快取器中 if(fifo_len > 0) { for(fifo_i = 0; fifo_i < fifo_len; fifo_i++) { TC_data[data_i] = READ_PERI_REG(UART_FIFO(UART0)) & 0xFF; data_i++; } continue; } //讀取完成後將資料write到伺服器 if(fifo_len == 0 && data_i >0) { write(sock_fd, TC_data, strlen(TC_data)); memset(TC_data,0,sizeof(TC_data)); data_i = 0; } } }
相關推薦
ESP8266/8266串列埠透傳 RTOS_SDK開發
編輯工具:source insight3.5晶片:ESP8285,內建1M FLASH 沒有外接FLASH通過串列埠做透傳,流程是在user_main()函式初始化為STA+AP模式,新建任務,在任務中實現透傳,透傳流程,通過串列埠一個位元組一個位元組的讀出資料,通過一個快取
【筆記更新】ESP8266串列埠透傳筆記
晶片:ESP8285環境:官方RTOS_SDK在做串列埠資料通過TCP傳送的時候會碰到客戶端沒200位元組一個包傳送,但是到server端並不是200位元組一個包収的,原因是lwip在TCP通訊的時候預設是開啟Nagle’s演算法的,這個是一種防止一直髮小包,serve端接不
STM32和樹莓派串列埠透傳
目錄 樹莓派環境串列埠透傳 STM32環境串列埠透傳 最近做一個專案需要STM32和樹莓派進行串列埠通訊,實現原理如下: 第一步:使用USB轉TTL分別除錯STM32和樹莓派的串列埠透傳,確保可以通訊; 第二步:確保第一步成功後,將樹莓派和STM32連線,進行串列埠透傳。
CC2530無線RF,串列埠透傳
1.前言 本文將分析一個利用CC2530實現無線串列埠,文中將會列舉部分程式碼並對CC2530的具體操作進行分析。本文的具體的內容包括以下幾個部分: CC2530是符合802.15.4標準的無線收發晶片,但是本文並沒有遵守802.15.4協議規則,在傳送過程中忽略了網路ID、源地址和目
nRF52832——基於SDK15.2 加入串列埠透傳服務
【背景】:專案需求,需要手機和裝置進行藍芽雙向資料傳輸,需要在原工程基礎上加入此通訊工程,使用的是SDK15.2,而官方原始碼已經帶有使用的藍芽串列埠透傳例程,所以參照此例程,移植到現有的工程中即可。但是移植過程卻遇到非常蛋疼的事。 【移植要點】:下面主要提及要點,與SDK12.3的差異;
Arduino通過串列埠透傳ESP 13板與java程式互動
Arduino通過串列埠透傳ESP13板與java程式互動 這個程式最基本的想法是用java把Arduino抽象出來,忙活了好幾天,雖然沒有達到最後的想法,但是學到了很多。 Main.java public class Main { pu
藍芽串列埠透傳模組:HC-06從機
藍芽模組使用方法也比較簡單,直接串列埠操作,無需額外的庫檔案。 首先還是先看看模組長什麼樣子: 【注意藍芽的工作電壓】這個模組相容3.6-6V電壓,所以我接在5V電壓上使用。 首先是對藍芽模組進行設定,我是用TTL轉介面連線到電腦上,通過AT指令進行設
MQTT 移植STM32+GPRS(串列埠透傳)(三)
昨天,去參觀了AWE(中國家電及消費電子博覽會),智慧家居,智慧插座、智慧LED燈、智慧攝像頭、智慧櫥櫃等等,大開眼界,原來這些別的公司的產品都正式投產了。還順便打聽了幾家提供雲服務的公司,他們一聽MQTT就說支援MQTT的協議,2家開發通訊模組的公司甚至直接可以提供支援
藍芽串列埠透傳-從機發送與接收(整理)
1、從機通過串列埠傳送資料給主機(Notification:character4) //simpleBLEPeripheral.c //串列埠回撥函式 static void NpiSerialCallback(uint8 port,uint8 event
CC1101 433無線模組,STM8串列埠透傳
前一段時間畫了一個CC1101收發小板子,但是一直沒有成功,最後發現把27nH的電感焊接成了27uH,最終導致失敗. 現在更換之後可以覆蓋我們公司所有的角落,已經夠用了. 下面是STM8程式 CC1101.C /***************************
AliOS-Things--ESP8266-linkkitapp-串列埠(二)
/* * Copyright (C) 2015-2017 Alibaba Group Holding Limited * * * this is a uart sample from hal uart for esp8266, and the same as other
ALIENTEK 的 ESP8266 WiFi Module 刷入韌體後出現don’t use rtc mem data錯誤或者ESP8266開啟串列埠不停出現亂碼的解決方案
ESP8266 WiFi Module 刷入韌體後出現don’t use rtc mem data 出現問題: 重新整理新的韌體後,出現錯誤提示:don’t use rtc mem data 或各種讀寫地址錯誤。 1、A fatal error occurred
WinCE裝置模擬器+虛擬串列埠+GPS模擬器搭建開發測試環境
所需軟體: 1、WinCE 5.0裝置模擬器 2、虛擬串列埠工具Virtual Serial Port Driver 6.9 3、Virace GPS 模擬器0.3.1chs 模擬環境: COM2:連線WinCE裝置模擬器 COM7:連線GPS模擬器 環境搭建步驟: 1
通過串列埠在主機和開發板之間傳送檔案
在主機和開發板之間傳送檔案一般可以通過網路(nfs、ftp等)和U盤,但對於一些體量比較小的檔案,通過串列埠傳輸也不失為一個比較方便的方法,畢竟除錯的時候串列埠線時常插在上面的。 minicom中提供xmodem, ymodem, zmodem等檔案傳輸協議,
8266外網透傳 智慧配網 mqtt 控制多個8266 通訊
實現功能:一鍵配網8266mqtt 接收 傳送 掉線遺囑8266用串列埠通過mqtt傳送資料到手機手機通過mqtt傳送資料到8266串列埠所有工具程式碼在文章尾部會打包1.清空8266韌體2.下載8266支援一鍵配網的韌體3.連線串列埠 8266復位 Formatti
開源一個安卓四軸上位機+配套ESP8266 UDP串列埠通訊原始碼
手機APP是由匿名四軸遙控器修改而來,在原有基礎上添加了雙搖桿控制和單搖桿控制 資料通過UDP和ESP8266通訊 協議可修改 安卓app原始碼:https://github.com/Kevincooo
Android 串列埠藍芽通訊開發Java版本
Android串列埠BLE藍芽通訊Java版 0. 導語 我們都知道,在物聯網中,BLE藍芽是通訊裝置的關鍵裝置。在傳統的物聯網應用中,無線WIFI、藍芽和Zigbee,還有一些其他的2.4GHz的無線網絡卡等。對於一個面向物聯網的嵌入式工程師來講,
ESP8266模擬串列埠
GPIO初始化void ICACHE_FLASH_ATTR bluetooth_uart_init() { hw_timer_init(0, 1);//硬體定時器初始化 hw_timer_set_func(hw_test_timer_cb); hw_timer_arm(
深入淺出VC++串列埠程式設計--簡訊應用開發
前面數次連載我們以較長的篇幅講解了串列埠通訊的硬體原理、DOS平臺控制以及基於WIN32 API、控制元件和第三方類的串列埠程式設計。作為本系列文章的最後一次連載,本章將給出一個典型的應用例項:西門子簡訊服務模組TC35的串列埠控制。 1.簡訊控制終端 作為簡訊 (Sho
為什麼ESP8266 TCP透傳過程會丟包?8266流控原理以及如何設定
1.為什麼ESP8266 TCP透傳過程會丟包? 因為沒有設定硬體流控。如果需要避免丟包,請設定硬體流控。透傳功能使用的是 TCP 協議,每包資料是 1460 (取決於協議棧),只要網路良好,buffer 空間沒有被消耗完,就可以不停地傳輸資料。對於透傳,串列埠接收資料