学习STM32与wifi模块的通讯涉及到三部分只是:MDA 、 串口通讯 、 定时器中断,可以参考正点原子开发板视频学习。
上图为STM32与wifi模块进行通讯的简图
1、图上具体使用的串口要根据WiFi模块的参考手册进行定义,所以首先就应该仔细阅读WiFi模块的手册。
下面附代码:参考别人的
usart.c
#include "usart2.h"
#include "delay.h"
#include "stdarg.h"
#include "stdio.h"
#include "string.h"
#include "timer.h"
__align(8) u8 USART2_TX_BUF[USART2_MAX_SEND_LEN]; //发送缓冲,最大USART2_MAX_SEND_LEN字节
#ifdef USART2_RX_EN //如果使能了接收
//串口接收缓存区
u8 USART2_RX_BUF[USART2_MAX_RECV_LEN]; //接收缓冲,最大USART2_MAX_RECV_LEN个字节.
u16 USART2_RX_STA=0;
void USART2_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//接收到数据
{
res =USART_ReceiveData(USART2);
if(USART2_RX_STA<USART2_MAX_RECV_LEN) //还可以接收数据
{
TIM_SetCounter(TIM2,0);//计数器清空
if(USART2_RX_STA==0)
TIM2_Set(1); //使能定时器2的中断
USART2_RX_BUF[USART2_RX_STA++]=res; //记录接收到的值
}else
{
USART2_RX_STA|=1<<15; //强制标记接收完成
}
}