void ReciveCmd(_DataInfo *pScr)
{
int i, CheckSum;
if(RS485Flag==2)
{
RS485Flag=0 ;
ClearRevBuff(COM2);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
send_data_uart2(0x02);
while (USART_GetFlagStatus(USART2,USART_FLAG_TC) !=SET); //ÂÖѯֱµ½·¢ËÍÊý¾ÝÍê±Ï
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //½øÈë½ÓÊÕģʽ
}
}
void USART2_IRQHandler(void)
{
int res ;
if((USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)) //½ÓÊÕµ½Êý¾Ý
{
res=USART_ReceiveData(USART2);
Uart_PushData(2,res);
// UartPro[2].Reveive_Uuff[USART2_RX_STA++]=res;
if(UartPro[2].Reveive_Uuff[0]==0x7e)
{
if(UartPro[2].Reveive_Uuff[1]==0x7d)
{
if(UartPro[2].Reveive_Uuff[3]==0x00)
RS485Flag=1;
else if (UartPro[2].Reveive_Uuff[3]==0x01)
RS485Flag=2;
else if (UartPro[2].Reveive_Uuff[3]==0x02)
RS485Flag=3;
else if (UartPro[2].Reveive_Uuff[3]==0x03)
RS485Flag=4;
else if (UartPro[2].Reveive_Uuff[3]==0x20)
RS485Flag=5;
}
}
PC机不能连续给STM32串口发指令,只能先按一下复位键才能发第二条,为什么啊 |
|