串口发送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);数据就会重复发送,而且每次发送的重复次数还不相同,要是不加呢收到的就是乱码,请问这是怎么回事啊

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-07-21 12:37
while是必须加的,得等待发送完成。至于其他的,仿真找问题吧
245925587
2楼-- · 2019-07-21 14:25
USART_SendData(USART1,cmd[i]);
午夜狼嚎
3楼-- · 2019-07-21 20:13
 精彩回答 2  元偷偷看……
学习STM32F103
4楼-- · 2019-07-21 23:55
你发送的不是数组,for里面的那个
oagnewux
5楼-- · 2019-07-22 01:59
正点原子 发表于 2018-10-29 16:18
while是必须加的,得等待发送完成。至于其他的,仿真找问题吧

谢谢您的回复
oagnewux
6楼-- · 2019-07-22 04:39
学习STM32F103 发表于 2018-10-30 09:36
你发送的不是数组,for里面的那个

感谢您的回复

一周热门 更多>