【HAL库每天一例】系列例程从今天开始持续更新。。。。。
我们将坚持每天至少发布一个基于YS-F1Pro开发板的HAL库例程,
该系列例程将带领大家从零开始使用HAL库,后面会持续添加模块应用例程。
同样的,我们还程序发布基于HAL库的指导文档和视频教程,欢迎持续关注,并提出改进意见。
例程下载:
资料包括程序、相关说明资料以及软件使用截图
链接:https://pan.baidu.com/s/1i574oPv
密码:r3s3
(硬石YS-F1Pro开发板HAL库例程持续更新\1. 软件设计之基本裸机例程(HAL库版本)\YSF1-064. WIFI-ESP8266)
/**
******************************************************************************
* 硬石YS-F1Pro开发板例程功能说明
*
* 例程名称: 1. WiFi(ESP8266)透传
*
******************************************************************************
* 说明:
* 本例程配套硬石stm32开发板YS-F1Pro使用。
*
* 淘宝:
* 论坛:硬石电子社区
* 版权归硬石嵌入式开发团队所有,请勿商用。
******************************************************************************
*/
【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文件内容
- #ifndef __BSP_ESP8266_H__
- #define __BSP_ESP8266_H__
- /* 包含头文件 ----------------------------------------------------------------*/
- #include "stm32f1xx_hal.h"
- #include <stdio.h>
- #include <stdbool.h>
- #if defined ( __CC_ARM )
- #pragma anon_unions
- #endif
- /* 类型定义 ------------------------------------------------------------------*/
- /******************************* ESP8266 数据类型定义 ***************************/
- typedef enum{
- STA,
- AP,
- STA_AP
- } ENUM_Net_ModeTypeDef;
- typedef enum{
- enumTCP,
- enumUDP,
- } ENUM_NetPro_TypeDef;
- typedef enum{
- Multiple_ID_0 = 0,
- Multiple_ID_1 = 1,
- Multiple_ID_2 = 2,
- Multiple_ID_3 = 3,
- Multiple_ID_4 = 4,
- Single_ID_0 = 5,
- } ENUM_ID_NO_TypeDef;
-
- typedef enum{
- OPEN = 0,
- WEP = 1,
- WPA_PSK = 2,
- WPA2_PSK = 3,
- WPA_WPA2_PSK = 4,
- } ENUM_AP_PsdMode_TypeDef;
- #define RX_BUF_MAX_LEN 1024 //最大接收缓存字节数
- typedef struct //串口数据帧的处理结构体
- {
- char Data_RX_BUF [ RX_BUF_MAX_LEN ];
- union {
- __IO uint16_t InfAll;
- struct {
- __IO uint16_t FramLength :15; // 14:0
- __IO uint16_t FramFinishFlag :1; // 15
- } InfBit;
- };
- }STRUCT_USARTx_Fram;
- /* 宏定义 --------------------------------------------------------------------*/
- /******************************** ESP8266 连接引脚定义 ***********************************/
- #define ESP8266_USARTx USART2
- #define ESP8266_USARTx_BAUDRATE 115200
- #define ESP8266_USART_RCC_CLK_ENABLE() __HAL_RCC_USART2_CLK_ENABLE()
- #define ESP8266_USART_RCC_CLK_DISABLE() __HAL_RCC_USART2_CLK_DISABLE()
- #define ESP8266_USARTx_GPIO_ClK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
- #define ESP8266_USARTx_Port GPIOA
- #define ESP8266_USARTx_Tx_PIN GPIO_PIN_2
- #define ESP8266_USARTx_Rx_PIN GPIO_PIN_3
- #define ESP8266_USARTx_IRQHANDLER USART2_IRQHandler
- #define ESP8266_USARTx_IRQn USART2_IRQn
- #define ESP8266_RST_GPIO_ClK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
- #define ESP8266_RST_PORT GPIOD
- #define ESP8266_RST_PIN GPIO_PIN_6
- #define ESP8266_RST_HIGH() HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_SET)
- #define ESP8266_RST_LOW() HAL_GPIO_WritePin(ESP8266_RST_PORT,ESP8266_RST_PIN,GPIO_PIN_RESET)
-
- /*********************************************** ESP8266 函数宏定义 *******************************************/
- #define ESP8266_Usart( fmt, ... ) USART_printf (ESP8266_USARTx, fmt, ##__VA_ARGS__ )
- #define PC_Usart( fmt, ... ) printf ( fmt, ##__VA_ARGS__ )
- //#define PC_Usart( fmt, ... )
- /* 扩展变量 ------------------------------------------------------------------*/
- extern UART_HandleTypeDef husartx_esp8266;
- extern STRUCT_USARTx_Fram strEsp8266_Fram_Record;
- extern uint8_t esp8266_rxdata;
- /* 函数声明 ------------------------------------------------------------------*/
- void ESP8266_Init( void );
- void ESP8266_stop( void );
- void ESP8266_Rst( void );
- bool ESP8266_Cmd( char * cmd, char * reply1, char * reply2, uint32_t waittime );
- bool ESP8266_AT_Test( void );
- bool ESP8266_Net_Mode_Choose( ENUM_Net_ModeTypeDef enumMode );
- bool ESP8266_JoinAP( char * pSSID, char * pPassWord );
- bool ESP8266_BuildAP( char * pSSID, char * pPassWord, ENUM_AP_PsdMode_TypeDef enunPsdMode );
- bool ESP8266_Enable_MultipleId( FunctionalState enumEnUnvarnishTx );
- bool ESP8266_Link_Server( ENUM_NetPro_TypeDef enumE, char * ip, char * ComNum, ENUM_ID_NO_TypeDef id);
- bool ESP8266_StartOrShutServer( FunctionalState enumMode, char * pPortNum, char * pTimeOver );
- uint8_t ESP8266_Get_LinkStatus( void );
- uint8_t ESP8266_Get_IdLinkStatus( void );
- uint8_t ESP8266_Inquire_ApIp( char * pApIp, uint8_t ucArrayLength );
- bool ESP8266_UnvarnishSend( void );
- void ESP8266_ExitUnvarnishSend( void );
- bool ESP8266_SendString( FunctionalState enumEnUnvarnishTx, char * pStr, uint32_t ulStrLength, ENUM_ID_NO_TypeDef ucId );
- char * ESP8266_ReceiveString( FunctionalState enumEnUnvarnishTx );
- void USART_printf(USART_TypeDef * USARTx, char * Data, ... );
- #endif
- /******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/
复制代码
|
之前楼主网盘分享的能再分享出来吗?楼主的过期了,谢谢
樓主分享的是硬石的 , 你可以到硬石論壇去下載 , 原本分享我已搞不清 , 因為我把他跟野火 弄在一起了 , 野火是標準庫
http://www.ing10bbs.com/forum.ph ... =1458&fromuid=4
(出处: 硬石社区)