bsp_esp8266.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #ifndef __BSP_ESP8266_H__
  2. #define __BSP_ESP8266_H__
  3. /* 包含头文件 ----------------------------------------------------------------*/
  4. #include "stm32f4xx_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. typedef enum{
  30. OPEN = 0,
  31. WEP = 1,
  32. WPA_PSK = 2,
  33. WPA2_PSK = 3,
  34. WPA_WPA2_PSK = 4,
  35. } ENUM_AP_PsdMode_TypeDef;
  36. #define RX_BUF_MAX_LEN 1024 //最大接收缓存字节数
  37. typedef struct //串口数据帧的处理结构体
  38. {
  39. char Data_RX_BUF [ RX_BUF_MAX_LEN ];
  40. union {
  41. __IO uint16_t InfAll;
  42. struct {
  43. __IO uint16_t FramLength :15; // 14:0
  44. __IO uint16_t FramFinishFlag :1; // 15
  45. } InfBit;
  46. };
  47. }STRUCT_USARTx_Fram;
  48. /* 宏定义 --------------------------------------------------------------------*/
  49. /******************************** ESP8266 连接引脚定义 ***********************************/
  50. #define ESP8266_USARTx UART5
  51. #define ESP8266_USARTx_BAUDRATE 115200
  52. #define ESP8266_USART_RCC_CLK_ENABLE() __HAL_RCC_UART5_CLK_ENABLE()
  53. #define ESP8266_USART_RCC_CLK_DISABLE() __HAL_RCC_UART5_CLK_DISABLE()
  54. #define ESP8266_USARTx_GPIO_ClK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
  55. #define ESP8266_USARTx_Port GPIOC
  56. #define ESP8266_USARTx_Tx_PIN GPIO_PIN_12
  57. #define ESP8266_USARTx_IRQHANDLER USART3_IRQHandler
  58. #define ESP8266_USARTx_IRQn UART5_IRQn
  59. #define ESP8266_RST_GPIO_ClK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
  60. #define ESP8266_RST_PORT GPIOC
  61. #define ESP8266_RST_PIN GPIO_PIN_10
  62. #define ESP8266_RST_HIGH() HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_SET)
  63. #define ESP8266_RST_LOW() HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_RESET)
  64. /*********************************************** ESP8266 函数宏定义 *******************************************/
  65. #define ESP8266_Usart( fmt, ... ) USART_printf (ESP8266_USARTx, fmt, ##__VA_ARGS__ )
  66. #define PC_Usart( fmt, ... ) printf ( fmt, ##__VA_ARGS__ )
  67. //#define PC_Usart( fmt, ... )
  68. /* 扩展变量 ------------------------------------------------------------------*/
  69. extern UART_HandleTypeDef husartx_esp8266;
  70. extern STRUCT_USARTx_Fram strEsp8266_Fram_Record;
  71. extern uint8_t esp8266_rxdata;
  72. /* 函数声明 ------------------------------------------------------------------*/
  73. void ESP8266_Init( void );
  74. void ESP8266_stop( void );
  75. void ESP8266_Rst( void );
  76. bool ESP8266_Cmd( char * cmd, char * reply1, char * reply2, uint32_t waittime );
  77. bool ESP8266_AT_Test( void );
  78. bool ESP8266_Net_Mode_Choose( ENUM_Net_ModeTypeDef enumMode );
  79. bool ESP8266_JoinAP( char * pSSID, char * pPassWord );
  80. bool ESP8266_BuildAP( char * pSSID, char * pPassWord, ENUM_AP_PsdMode_TypeDef enunPsdMode );
  81. bool ESP8266_Enable_MultipleId( FunctionalState enumEnUnvarnishTx );
  82. bool ESP8266_Link_Server( ENUM_NetPro_TypeDef enumE, char * ip, char * ComNum, ENUM_ID_NO_TypeDef id);
  83. bool ESP8266_StartOrShutServer( FunctionalState enumMode, char * pPortNum, char * pTimeOver );
  84. uint8_t ESP8266_Get_LinkStatus( void );
  85. uint8_t ESP8266_Get_IdLinkStatus( void );
  86. uint8_t ESP8266_Inquire_ApIp( char * pApIp, uint8_t ucArrayLength );
  87. bool ESP8266_UnvarnishSend( void );
  88. void ESP8266_ExitUnvarnishSend( void );
  89. bool ESP8266_SendString( FunctionalState enumEnUnvarnishTx, char * pStr, uint32_t ulStrLength, ENUM_ID_NO_TypeDef ucId );
  90. char * ESP8266_ReceiveString( FunctionalState enumEnUnvarnishTx );
  91. void USART_printf(USART_TypeDef * USARTx, char * Data, ... );
  92. #endif
  93. /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/