串口转WIFI模块—— ESP8266(STM32代码)
标签:
esp-01sesp8266串口转wifistm32 |
环境:野火STM32MINI开发板,STM32F103VE
1、使能ESP8266模块
现在代码也比较乱,因为之后,还要加到UC/OS系统,这个代码只是自己对STM32的复习,毕竟很久没使用STM32写过代码了。一直在写linux
c++。。。
1、先要保证串口1可以输入输出(用户交互)
2、串口2中断接受,还要可以发送数据出去。(接ESP8266)
3、如我上一个博文一样,先做一个使用,测试命令以及响应的数据,以及响应时间。
思路:
2、用AT指令,测试芯片是否响应
3、设置芯片为STA模式
4、加入AP
5、加入服务器
6、使能透传
做完这些就能发送跟接受了,当然发送数据,还需要一些AT指令。
http://s6/mw690/003duHwJzy754EXMIMR35&690ESP8266(STM32代码)" TITLE="串口转WIFI模块—— ESP8266(STM32代码)" />
如,上图。我将刚刚我思路的6个步骤都写在了这里。
如,上图。我将刚刚我思路的6个步骤都写在了这里。
下面是对一些函数的截图:
http://s13/mw690/003duHwJzy754FeYyiE6c&690ESP8266(STM32代码)" TITLE="串口转WIFI模块—— ESP8266(STM32代码)" />
上图是加入AP的函数,计较简单的。
上图是加入AP的函数,计较简单的。
http://s11/mw690/003duHwJzy754FfsIuS9a&690ESP8266(STM32代码)" TITLE="串口转WIFI模块—— ESP8266(STM32代码)" />
这个函数,比较经典,也比较频繁使用,我讲一下。发出去的指令后要等一段时间后ESP8266会响应。所以要3个形参以上。1、指令、2、等待响应时间;3、判断响应的数据。
其中中断函数:
void USART2_IRQHandler(void)
{
uint8_t ch;
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART2,USART_IT_RXNE);
ch = USART_ReceiveData(USART2);
struct_USART2.USART2_BUFF[struct_USART2.USART2_length++] =
ch;
struct_USART2.flag = 1;
a++;
// USART_SendData(USART2,ch);
}
if( USART_GetITStatus( USART2, USART_IT_IDLE ) == SET )
{
USART_ClearITPendingBit(USART2,USART_IT_IDLE);
struct_USART2.flag = 1;
ch = USART_ReceiveData(USART2);
}
}
相将中断数据长度标志清零,发送指令等待数据接收,判断数据,返回。

加载中…