新手入门
- 积分
- 15
- 金钱
- 15
- 注册时间
- 2017-7-25
- 在线时间
- 2 小时
|
1金钱
我写了一个串口程序,使用串口1,收到01 02 03 命令后返回一串数组0xC2,0xED,0xC4,0xFE,0xC4,0xFE,0xC3,0xC0,0xC5,0xAE,每接收一次命令再发送完数据后指示灯会闪烁一次,使用串口助手发送命令,如果发送命令比较慢,可以正常运行,但是发送速度很快的话就会出现程序死机,串口助手收不到任何数据的情况,希望大牛们帮忙解决下吧,谢谢,感激不尽,下边是我的程序
void lower_computer_send_PAC(void)
{
LED_1(ON_1);
Delay_ms(50);
LED_1(OFF_1);
Delay_ms(50);
}
void host_computer_send_PAC(void)
{
unsigned char i;
if(receive_flog==1)
{
if((RECEIVE_Buff[0]==0x01)&&(RECEIVE_Buff[1]==0x02)&&(RECEIVE_Buff[2]==0x03)) //ÅD¶Ï½óêÕÃüáîêÇ·ñÕyè·
{
for(i=0;i<10;i++)
{
SEND_Buff[i]=Send_data_Group[i];
}
SEND_Data_frame(SEND_Buff,10); //·¢Ëíêy¾Y
receive_flog=0;
RECEIVE_Size=0;
}
lower_computer_send_PAC();//led闪烁¸
}
}
接收中断程序是
void USART1_IRQHandler(void)
{
if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE )!=RESET)
{
RECEIVE_Buff[RECEIVE_Size]=USART_ReceiveData(USART1);
RECEIVE_Size++;
receive_flog=1;
}
}
谢谢了
|
|