程序中常用的延时等待处理方式

// 通过串口给蓝牙给名字

void BT_Name_Read(void) // 读取蓝牙的名字

{   
    Uart_Send_Data("AT+NAME\r\n", 9);  // 发送AT指令
    BT_CheckTime(BT_NAME_READ); // 检测发送的AT指令返回命令状态及超时检测
}

void BT_CheckTime(unsigned char BT_ATSet)

{
    unsigned int i = 100000;   // 超时时间变量

    BT_Reg.BT_ATSet_Item = BT_ATSet;  // 状态赋值
    while((BT_Reg.BT_ATSet_Item == BT_ATSet)&& (i--)) // 判断状态改变和超时
    {
        BT_Receive(); // 接收数据处理,收到命令值会改变 BT_Reg.BT_ATSet_Item 状态
    }
    BT_Reg.ByteCnt = 0;
    BT_Reg.BT_ATSet_Item = BT_DEINIT;
}

你可能感兴趣的:(STM32)