int main(void)
{
//USART_ITConfig(USART1, USART_IT_TXE, ENABLE); // 开启发送
RCC_Configuration();
NVIC_Configuration();
GPIO_Configuration();
USART_Configuration();
USART_ClearFlag(USART2,USART_FLAG_TC);//清发送结束位
serial3_init();
while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==RESET);
// printf("打开LED灯,请输入LEDON!\n");
// printf("关闭LED灯,请输入LEDOFF!\n");
// printf("输入错误的话,LED灯闪烁3次!\n");
GPIO_SetBits(GPIOA,GPIO_Pin_8);//PA8置位,LED1灯灭
memset(CmdBuffer,10,0);
while(1)
{
if (Rx_Flag==1)
{
USART_ITConfig(USART2, USART_IT_RXNE, DISABLE); //关闭接收中断
Rx_Flag=0;
RxCounter=0;
if (strstr(CmdBuffer,"LEDOFF\r\n"))
{
GPIO_SetBits(GPIOA,GPIO_Pin_8);//PA8置位,LED1灯灭
memset(CmdBuffer,10,0);
delay_nms(1000);
SYN_FrameInfo(0,"灯已经关闭了");
}
else if(strstr(CmdBuffer,"LEDON\r\n"))
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);//PA8清零,LED1灯亮
memset(CmdBuffer,10,0);
delay_nms(1000);
SYN_FrameInfo(0,"灯已经打开了");
}
else
{
for (i=0;i<3;i++)
{
memset(CmdBuffer,10,0);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);//PA8清零,LED1灯亮
delay_nms(1000); GPIO_SetBits(GPIOA,GPIO_Pin_8);//PA8置位,LED1灯灭
delay_nms(200);
}
}
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); //开启接收中断,接收寄存器不空(RXNE=1)时产生中断
}
}
} |