STM32 HAL库--串口的DMA(发送、接收)和esp8266 wifi模组发送和接收函数封装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/euxnijuoh/article/details/82086456

/*
*********************************************************************************************************
*    函 数 名: wifi_ack_check
*    功能说明: 串口初始化函数
*    形    参: ack
*    返 回 值: TRUE\FALSE
*********************************************************************************************************
*/
uint8_t wifi_ack_check(uint8_t* ack)
{
    if(usart3_recv_end_flag == 1){
            usart3_recv_end_flag = 0;
            if(strstr((const char *)usart3_rx_buf,(const char*)ack)){
                    rs485_send(usart3_rx_buf,usart3_rx_len);
                    usart3_rx_len = 0;
                    memset(usart3_rx_buf,0,DATA_BUFFER_SIZE);
                  return TRUE;    //返回TRUE说明wifi模组已有应答
            }  
    }
   return FALSE;         //返回FALSE说明wifi模组没有应答
}


/*
*********************************************************************************************************
*    函 数 名: send_wifi_cmd
*    功能说明: 串口初始化函数
*    形    参: cmd,ack,waittime
*    返 回 值: TRUE\FALSE
*********************************************************************************************************
*/
uint8_t send_wifi_cmd(uint8_t *cmd,uint8_t *ack,uint8_t waittime)   //单片机给wifi模组发送AT指令
{
     DMA_usart3_send(cmd,sizeof(cmd));
     delay_ms(waittime);
     if(wifi_ack_check(ack)){
        return TRUE;      //返回TRUE说明wifi模组已有应答
     }

     return FALSE;        //返回FALSE说明wifi模组没有应答
 }

猜你喜欢

转载自blog.csdn.net/euxnijuoh/article/details/82086456