求助,使用esp8266-01s模块时出现的问题


我使用的单片机是stm32f103c8t6最小系统板,在与模块的串口通信中出了问题

 

以下是我cuba Mx 中的串口配置,是串口二,中断也使能了。当然模块的波特率也设置成9600了

然后是串口中断函数

void USR_UART2_IRQHandler(void)
{
    if(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_RXNE)!=RESET)
    {
        __HAL_UART_ENABLE_IT(&huart2,UART_IT_IDLE);
        USART2_RXBUFF[USART2_RXCOUNT]=(uint8_t)(huart2.Instance->DR&(uint8_t)0x00ff);
        USART2_RXCOUNT++;
        __HAL_UART_CLEAR_FLAG(&huart2,UART_FLAG_RXNE);
    }
    if(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_IDLE)!=RESET)
    {
        __HAL_UART_DISABLE_IT(&huart2,UART_IT_IDLE);
        USART2_RXSTAT=1;
    }

经过测试,接收和发送都是没问题的

下面是8266-01s模块用到的AT指令:

AT+CWMODE=2

AT+RST

AT+CWSAP="8266","123456789",11,2

AT+CIPMUX=1(在程序中写了)

AT+CIPSERVER=1,1001(在程序中写了)

为了测试单片机是否可以接收到模块发送来的数据,写了以下程序

int main(void)

{

        if(USART2_RXSTAT)
         {
                 if((USART2_RXBUFF[0]=='+'))
                 {
                        HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
                  }

                  USART2_RXSTAT=0;
                  USART2_RXCOUNT=0;
                  memset(USART2_RXBUFF,0,sizeof(USART2_RXBUFF));
        }

}

模块发送给单片机的数据首位是一个‘+’

模块是AP模式,当我用手机连接模块的wifi时,小灯的状态发生两次变化,因为模块会发送两个首位是‘+’的信息(懒得做一遍然后截图了)

手机与模块断开连接的时候小灯的状态也会变化

但是!连接wifi后我用手机的调试助手发送的信息不会让小灯的状态变化。模块发送的数据格式是  +IPD等等等等   ,按理说也能让小灯的状态变化,可是并没有

所以想问问是什么原因

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值