微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 第063例:WIFI-ESP8266

第063例:WIFI-ESP8266

时间:10-02 整理:3721RD 点击:
【HAL库每天一例】系列例程从今天开始持续更新。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。
例程下载:
资料包括程序、相关说明资料以及软件使用截图
链接:http://pan.baidu.com/s/1i574oPv
密码:r3s3

(硬石YS-F1Pro开发板HAL库例程持续更新\1. 软件设计之基本裸机例程(HAL库版本)\YSF1-064. WIFI-ESP8266)
/**
  ******************************************************************************
  *                           硬石YS-F1Pro开发板例程功能说明
  *
  *  例程名称: 1. WiFi(ESP8266)透传
  *   
  ******************************************************************************
  * 说明:
  * 本例程配套硬石stm32开发板YS-F1Pro使用。
  *
  * 淘宝:
  * 论坛:http://www.ing10bbs.com
   * 版权归硬石嵌入式开发团队所有,请勿商用。
  ******************************************************************************
  */
【1】例程简介
  RS232是一个国际通用标准的串行数据通信接口,用于两个设备直接数据交换。本例程使用USART
外设功能,实现stm32向PC端发送数据,并等待接收来着PC端的信息中断,然后再回传信息给PC端。
  YS_F1Pro开发板上集成一个ESP8266 WiFi模块,只需要通过USART即可与之通信,开发板设计
通过跳线帽即可选择USART2与之连接。
【2】跳线帽情况
******* 为保证例程正常运行,必须插入以下跳线帽 **********
丝印编号     IO端口      目标功能引脚        出厂默认设置
  JP1        PA10        TXD(CH340G)          已接入
  JP2        PA9         RXD(CH340G)          已接入
  CN10       PA2         RXD(WIFI)            已接入
  CN10       PA3         TXD(WIFI)            已接入
  
【3】操作及现象
  保证JP1、JP2和CN10端子上的4个跳线帽插入正确。打开网络调试助手,设置为“TCP Server”
类型,服务器IP为自己主机IP,端口设置为8080,并启动服务,然后修过本例程中main.c文件中有关
WiFi账号、密码,以及要连接的服务器IP(自己电脑IP)和端口(8000),编译程序。然后使用开发板
配套的MINI USB线连接到开发板标示“调试串口”字样的MIMI USB接口,在电脑端打开串口调试助手
工具,选择对应端口,设置参数为115200 8-NO-1,下载程序之后,在串口调试助手窗口可接收到信息。
等待ESP8266正确连接上网络后在网络调试助手接口接收到数据。
/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/











bsp_esp8266.h文件内容

  1. #ifndef  __BSP_ESP8266_H__
  2. #define         __BSP_ESP8266_H__

  3. /* 包含头文件 ----------------------------------------------------------------*/
  4. #include "stm32f1xx_hal.h"
  5. #include <stdio.h>
  6. #include <stdbool.h>

  7. #if defined ( __CC_ARM   )
  8. #pragma anon_unions
  9. #endif
  10. /* 类型定义 ------------------------------------------------------------------*/
  11. /******************************* ESP8266 数据类型定义 ***************************/
  12. typedef enum{
  13.         STA,
  14.   AP,
  15.   STA_AP  
  16. } ENUM_Net_ModeTypeDef;

  17. typedef enum{
  18.          enumTCP,
  19.          enumUDP,
  20. } ENUM_NetPro_TypeDef;

  21. typedef enum{
  22.         Multiple_ID_0 = 0,
  23.         Multiple_ID_1 = 1,
  24.         Multiple_ID_2 = 2,
  25.         Multiple_ID_3 = 3,
  26.         Multiple_ID_4 = 4,
  27.         Single_ID_0 = 5,
  28. } ENUM_ID_NO_TypeDef;
  29.         
  30. typedef enum{
  31.         OPEN = 0,
  32.         WEP = 1,
  33.         WPA_PSK = 2,
  34.         WPA2_PSK = 3,
  35.         WPA_WPA2_PSK = 4,
  36. } ENUM_AP_PsdMode_TypeDef;

  37. #define RX_BUF_MAX_LEN     1024                                     //最大接收缓存字节数

  38. typedef struct                                    //串口数据帧的处理结构体
  39. {
  40.         char  Data_RX_BUF [ RX_BUF_MAX_LEN ];
  41.   union {
  42.     __IO uint16_t InfAll;
  43.     struct {
  44.                   __IO uint16_t FramLength       :15;                               // 14:0
  45.                   __IO uint16_t FramFinishFlag   :1;                                // 15
  46.           } InfBit;
  47.   };         
  48. }STRUCT_USARTx_Fram;

  49. /* 宏定义 --------------------------------------------------------------------*/

  50. /******************************** ESP8266 连接引脚定义 ***********************************/
  51. #define ESP8266_USARTx                                 USART2
  52. #define ESP8266_USARTx_BAUDRATE                        115200
  53. #define ESP8266_USART_RCC_CLK_ENABLE()                 __HAL_RCC_USART2_CLK_ENABLE()
  54. #define ESP8266_USART_RCC_CLK_DISABLE()                __HAL_RCC_USART2_CLK_DISABLE()

  55. #define ESP8266_USARTx_GPIO_ClK_ENABLE()               __HAL_RCC_GPIOA_CLK_ENABLE()
  56. #define ESP8266_USARTx_Port                            GPIOA
  57. #define ESP8266_USARTx_Tx_PIN                          GPIO_PIN_2
  58. #define ESP8266_USARTx_Rx_PIN                          GPIO_PIN_3

  59. #define ESP8266_USARTx_IRQHANDLER                      USART2_IRQHandler
  60. #define ESP8266_USARTx_IRQn                            USART2_IRQn

  61. #define ESP8266_RST_GPIO_ClK_ENABLE()                  __HAL_RCC_GPIOD_CLK_ENABLE()
  62. #define ESP8266_RST_PORT                               GPIOD
  63. #define ESP8266_RST_PIN                                GPIO_PIN_6
  64. #define ESP8266_RST_HIGH()                             HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_SET)
  65. #define ESP8266_RST_LOW()                              HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_RESET)
  66.             
  67. /*********************************************** ESP8266 函数宏定义 *******************************************/
  68. #define ESP8266_Usart( fmt, ... )                      USART_printf (ESP8266_USARTx, fmt, ##__VA_ARGS__ )
  69. #define PC_Usart( fmt, ... )                           printf ( fmt, ##__VA_ARGS__ )
  70. //#define PC_Usart( fmt, ... )               



  71. /* 扩展变量 ------------------------------------------------------------------*/
  72. extern UART_HandleTypeDef husartx_esp8266;
  73. extern STRUCT_USARTx_Fram strEsp8266_Fram_Record;
  74. extern uint8_t esp8266_rxdata;

  75. /* 函数声明 ------------------------------------------------------------------*/
  76. void  ESP8266_Init( void );
  77. void  ESP8266_stop( void );
  78. void  ESP8266_Rst( void );
  79. bool  ESP8266_Cmd( char * cmd, char * reply1, char * reply2, uint32_t waittime );
  80. bool  ESP8266_AT_Test( void );
  81. bool  ESP8266_Net_Mode_Choose( ENUM_Net_ModeTypeDef enumMode );
  82. bool  ESP8266_JoinAP( char * pSSID, char * pPassWord );
  83. bool  ESP8266_BuildAP( char * pSSID, char * pPassWord, ENUM_AP_PsdMode_TypeDef enunPsdMode );
  84. bool  ESP8266_Enable_MultipleId( FunctionalState enumEnUnvarnishTx );
  85. bool  ESP8266_Link_Server( ENUM_NetPro_TypeDef enumE, char * ip, char * ComNum, ENUM_ID_NO_TypeDef id);
  86. bool  ESP8266_StartOrShutServer( FunctionalState enumMode, char * pPortNum, char * pTimeOver );
  87. uint8_t ESP8266_Get_LinkStatus( void );
  88. uint8_t ESP8266_Get_IdLinkStatus( void );
  89. uint8_t ESP8266_Inquire_ApIp( char * pApIp, uint8_t ucArrayLength );
  90. bool ESP8266_UnvarnishSend( void );
  91. void ESP8266_ExitUnvarnishSend( void );
  92. bool ESP8266_SendString( FunctionalState enumEnUnvarnishTx, char * pStr, uint32_t ulStrLength, ENUM_ID_NO_TypeDef ucId );
  93. char * ESP8266_ReceiveString( FunctionalState enumEnUnvarnishTx );

  94. void  USART_printf(USART_TypeDef * USARTx, char * Data, ... );

  95. #endif

  96. /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/

复制代码



为什么链接用不了了

百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1
360云盘:https://yunpan.cn/OcPiRp3wEcA92u密码 cfb6

谢谢分享谢谢分享谢谢分享
         谢谢分享谢谢分享                       谢谢分享
         谢谢分享谢谢分享                谢谢分享         
                     谢谢分享              谢谢分享谢谢分享谢谢分享
               谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        分                分
               谢谢分享              谢谢分享        享                享
               谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        谢                谢
谢        谢谢分享               谢谢分享       分                分
谢谢     谢谢分享              谢谢分享        享                享
谢谢分 谢谢分享              谢谢分享        谢                谢
谢谢分 谢谢分享                               谢       谢
谢谢分谢谢分享                         谢                 谢
           谢谢谢谢                    分                               分
               谢谢                   享                                     享

谢谢小编的分享!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top