久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4481|回復: 4
打印 上一主題 下一主題
收起左側

esp8266收發一體stm32單片機測試程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:326809 發表于 2018-5-10 14:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
測試使用,收發一體程序,修改宏定義來確定收發狀態

單片機源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   ******************************************************************************
  5.   * @attention
  6.   ******************************************************************************
  7.   */
  8. #include <string.h>
  9. #include <math.h>

  10. #include "stm32f10x.h"
  11. #include "bsp_usart1.h"
  12. #include "bsp_SysTick.h"
  13. #include "bsp_esp8266.h"
  14. #include "bsp_cpu_flash.h"
  15. #include "bsp_led.h"

  16. //發送數據長度
  17. #define TX_SIZE 36
  18. //RSSI存儲地址
  19. #define RSSI_SAVE_ADDR  0X0800F000
  20. //統計次數存儲地址
  21. #define FLASH_SAVE_ADDR  0X0800E000

  22. // 0:客戶端模式 1:服務端模式
  23. static uint8_t s_ucTxRxMode = 0;


  24. #define      ESP8266_ApSsid                       "RMD_TEST"                //要連接的熱點的名稱
  25. #define      ESP8266_ApPwd                        "rmd_test"           //要連接的熱點的密鑰
  26. #define      ESP8266_enunPsdMode                   2           

  27. #define      ESP8266_TcpServer_IP                 "192.168.4.1"      //要連接的服務器的 IP
  28. #define      ESP8266_TcpServer_Port               "5000"               //要連接的服務器的端口

  29. #define N 40                //N = 10 * n ,其中n為環境衰減因子,3.25-4.5
  30. #define A 51            //接收機和發射機間隔1m時的信號強度

  31. extern volatile uint8_t ucTcpClosedFlag;
  32. extern uint8_t Get_AP_RSSI(char *APList, uint8_t uclenth);

  33. static char cStr[36] = "abcdefghijklmnopqrstuvwxyz1234567890";

  34. //計算距離
  35. float rssiTodis(int RSSI) {
  36.     float iu, distance;
  37.     iu = (float)(RSSI - A) / (float)N;  
  38.     distance = pow(10, iu);
  39.     return distance;
  40. }
  41. int main(){
  42.         USARTx_Config ();                                                         
  43.         SysTick_Init ();
  44.         printf("%f",rssiTodis(75));
  45. }
  46. /*
  47. int main ( void ){
  48.        
  49.         char RSSI[2];
  50.         u16 m = 0,n = 0;
  51.         char Mem_Buf[50];       
  52.         uint8_t ucStatus;
  53.         u32 Err_Num = 0,Success_Num = 0;

  54.   USARTx_Config ();                                                         
  55.         SysTick_Init ();
  56.         LED_GPIO_Config();
  57.         ESP8266_Init ();
  58.         Delay_ms(1000);
  59.         ESP8266_Cmd ( "AT+RESTORE", "OK", NULL, 500 );
  60.         Delay_ms(2000);
  61.         ESP8266_AT_Test ();
  62.         LED1_ON();
  63.         Delay_ms(1000);
  64.         LED1_OFF();
  65.        
  66.         if(s_ucTxRxMode == 0){
  67.                
  68.                 //設置為sta客戶端
  69.                 ESP8266_Net_Mode_Choose(STA);
  70.                 //加入AP
  71.                 while ( ! ESP8266_JoinAP (ESP8266_ApSsid,ESP8266_ApPwd ) );       
  72.                 Delay_ms(500);
  73.                 //獲取當前AP的RSSI值
  74.                 if(Get_AP_RSSI(RSSI,2)){
  75.                         //printf("%s",RSSI);
  76.                         sprintf(Mem_Buf,"!rssi:%s!",RSSI);
  77.                         bsp_WriteCpuFlash(RSSI_SAVE_ADDR,(uint8_t*)Mem_Buf,sizeof(Mem_Buf));
  78.                 }else{
  79.                         //printf("failed\r\n");
  80.                         sprintf(Mem_Buf,"!connect error!");
  81.                         bsp_WriteCpuFlash(RSSI_SAVE_ADDR,(uint8_t*)Mem_Buf,sizeof(Mem_Buf));
  82.                 }
  83.                 Delay_ms(500);
  84.                 //建立tcp連接
  85.                 ESP8266_Enable_MultipleId ( DISABLE );       
  86.                 while ( !        ESP8266_Link_Server ( enumTCP,ESP8266_TcpServer_IP,ESP8266_TcpServer_Port, Single_ID_0 ) );
  87.                 while ( ! ESP8266_UnvarnishSend ());
  88.                
  89.                 for(;;){
  90.                
  91.                         if(ESP8266_SendString ( ENABLE, cStr, 0, Single_ID_0 )){
  92.                                 n += 1;
  93.                                 printf("%s %d\r\n",cStr,n);
  94.                                 LED1_TOGGLE();
  95.                         }else{
  96.                                 Err_Num +=1;
  97.                         }
  98.                         ///以周期計數減小flash寫入次數
  99.                         if(n == 10){
  100.                                 Success_Num += 1;
  101.                                 sprintf(Mem_Buf,"!success:%d,error:%d!",Success_Num,Err_Num);
  102.                                 //printf("%s\r\n",Mem_Buf);
  103.                                 bsp_WriteCpuFlash(FLASH_SAVE_ADDR,(uint8_t*)Mem_Buf,sizeof(Mem_Buf));
  104.                                 n = 0;                       
  105.                         }
  106.                                                
  107.                         Delay_ms(1000);
  108.                
  109.                         //檢測是否失去連接
  110.                         if(ucTcpClosedFlag ){                                             
  111.                                 ESP8266_ExitUnvarnishSend ();                                    
  112.                        
  113.                                 do ucStatus = ESP8266_Get_LinkStatus ();                        
  114.                                 while (!ucStatus);
  115.                        
  116.                                 if(ucStatus == 4){
  117.                                
  118.                                         //printf ( "\r\n正在重連熱點和服務器 ......\r\n" );                               
  119.                                         while ( ! ESP8266_JoinAP (ESP8266_ApSsid, ESP8266_ApPwd ) );                               
  120.                                         while ( !        ESP8266_Link_Server ( enumTCP, ESP8266_TcpServer_IP, ESP8266_TcpServer_Port, Single_ID_0 ) );                               
  121.                                         //printf ( "\r\n重連熱點和服務器成功\r\n" );
  122.                                 }
  123.                                 while ( ! ESP8266_UnvarnishSend () );                                       
  124.                         }
  125.                 }               
  126.         }else if(s_ucTxRxMode == 1){
  127.                
  128.                 ESP8266_Net_Mode_Choose ( AP );               
  129.                 //printf ( "\r\n正在配置 ESP8266 ......\r\n" );
  130.                 while ( ! ESP8266_BuildAP ( ESP8266_ApSsid, ESP8266_ApPwd ,ESP8266_enunPsdMode));       
  131.                 ESP8266_Enable_MultipleId ( ENABLE );       
  132.                 while (!ESP8266_StartOrShutServer ( ENABLE, ESP8266_TcpServer_Port, "0"));

  133.                 for(;;){
  134.                         //檢查接收到的內容是否存在丟包
  135.                         if(strcmp(ESP8266_ReceiveString(DISABLE),cStr)){
  136.                                 m += 1;
  137.                         //        printf("%s %d",ESP8266_ReceiveString(DISABLE),m);
  138.                                 LED1_TOGGLE();
  139.                         }else{
  140.                                 Err_Num += 1;
  141.                         }
  142.                         //周期計數并寫入flash
  143.                         if(m == 120){
  144.                                 Success_Num += 1;
  145.                                 sprintf(Mem_Buf,"!success:%d,error:%d!",Success_Num,Err_Num);
  146.                         //        printf("%s\r\n",Mem_Buf);
  147.                                 bsp_WriteCpuFlash(FLASH_SAVE_ADDR,(uint8_t*)Mem_Buf,sizeof(Mem_Buf));
  148.                                 m = 0;
  149.                         }
  150.                 }
  151.         }
  152. }
  153. */

  154. /*********************************************END OF FILE**********************/
復制代碼

所有資料51hei提供下載:
demo(esp8266).rar (307.88 KB, 下載次數: 64)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:308400 發表于 2018-5-16 17:53 | 只看該作者
樓主您好,為啥我參考使用這個程序作為客戶端為啥調試助手接收不到程序,請問esp和單片機需要連接哪幾根線
回復

使用道具 舉報

板凳
ID:326809 發表于 2018-6-6 22:18 | 只看該作者
liuhansong 發表于 2018-5-16 17:53
樓主您好,為啥我參考使用這個程序作為客戶端為啥調試助手接收不到程序,請問esp和單片機需要連接哪幾根線

要連接的引腳程序里需要定義到,你可好好看一下。通用的8腳模塊一樣的效果。
回復

使用道具 舉報

地板
ID:332109 發表于 2018-6-13 15:34 | 只看該作者
什么情況?分扣了文件沒下載?
回復

使用道具 舉報

5#
ID:246594 發表于 2019-3-18 09:20 | 只看該作者
好東西,最近剛好在學這一塊的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产一级片 | 亚洲综合一区二区三区 | 国产一区二区av | 国产一区二区久久 | 国产成人精品一区二区三区视频 | 国产一区二区成人 | 国产jizz女人多喷水99 | 午夜男人的天堂 | 成人国产精品久久 | 国产精品久久久久久吹潮 | www.久草 | 在线中文字幕视频 | 亚洲欧洲一区 | 久久久99国产精品免费 | 少妇无套高潮一二三区 | 亚洲区一区二 | 国产精品久久久久久久久久久免费看 | 91麻豆精品国产91久久久久久久久 | 亚洲免费在线 | 国产精品www | 天天干在线播放 | 欧美在线观看一区 | 欧美日韩电影一区 | 91中文字幕 | 精品国产一区二区在线 | 亚欧洲精品在线视频免费观看 | 一区二区三区欧美大片 | 精品国产精品国产偷麻豆 | 黄色日本视频 | 国产男女猛烈无遮掩视频免费网站 | av网站免费| 亚洲精品乱码久久久久久按摩观 | 欧美一区二区三区在线 | 自拍偷拍亚洲欧美 | 成年人网站国产 | 国产成人精品一区二区三区网站观看 | 日韩一区二区三区av | 国产精品揄拍一区二区久久国内亚洲精 | 成人精品一区二区 | 日韩在线不卡视频 | 中文字幕一区二区三 |