串口通信(电脑发送信息到微控制器)
①按第八节进行串口配置。
②NVIC_InitTypeDef NVIC_InitStructure; //进行中断配置
频道:USART1_IRQn
NVIC_Init(&NVIC_InitStructure);
③USART_ITConfig(USARTx, USART_IT_RXNE, ENABLE); //接收中断注册
④中断服务函数:输入代号检测Pxxxx
PCcodetime=5; //起始位为5
void USART1_IRQHandler(void) //USART1可换其他端口
{
if(PCcodetime!=4)
{PCcode[PCcodetime]=USART_ReceiveData(USART1);PCcodetime++;}
if(PCcode[0]=='1' && PCcode[1]=='2' && PCcode[2]=='3' && PCcode[3]=='4')
{
USART_Printf(USART1,"good");
for(PCcodetime=0;PCcodetime<4;PCcodetime++)
{
PCcode[PCcodetime]='0';
}
PCcodetime=5;
}
if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)!=RESET)
{
if (USART_ReceiveData(USART1)=='P'){PCcodetime=0;}
USART_ClearFlag(USART1,USART_FLAG_RXNE); //清除接收标志
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除中断标志
}
}