串口发送at指令

2019-07-21 08:21发布

本帖最后由 oagnewux 于 2018-10-29 16:20 编辑

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "stdio.h"        

int main(void)
{
        u8 i,t;
        u8 len;
        u8 key;
        u16 times=0;
        delay_init();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);
        LED_Init();  
        KEY_Init();
  key=key_scan(0);
        if(key==1)
        {
             u8 cmd[] = "AT+RST ";
             for(i=0;i<8;i++)
             {
                  USART_SendData(USART1,cmd);
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
                }
  }
}

加了判断指令while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);数据就会重复发送,而且每次发送的重复次数还不相同,要是不加呢收到的就是乱码,请问这是怎么回事啊

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。