初级会员

- 积分
- 152
- 金钱
- 152
- 注册时间
- 2018-12-5
- 在线时间
- 41 小时
|
void USART1_IRQHandler(void) //中断服务函数
{
u8 res,x,a,times;
if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==SET) //½óêüêy¾YòÔèy¸ö0xff½áÎ2êy¾Y
{
res = USART_ReceiveData(USART1);
if(res==0xff)//可能结束标志开始
{
times++;
determined_buf[a++]=res;
if(times==3) recieveflag=1; //结束
else //防止出现其他个数FF的情况
{
for(x=0;x<a;x++)
{
USART_RX_BUF[t++]=determined_buf[x++];
}
}
}
else
{
USART_RX_BUF[t++]=res;
if(t>200) t=0; //接收不超过200
}
}
}
int main(void) //主函数
{
u8 l,k;
extern u8 t;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
while(1)
{
if(recieveflag==1) //接收完成标识是否置1
{
printf("\r\您输入的信息为\r\n\r\n");
for(l=0;l<t;l++)
{
USART_SendData(USART1,USART_RX_BUF[l]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
printf("\r\n\r\n");
recieveflag =0;
}
else
{
k++;
if(k%5000==0)
{
printf("\r\n正带源自\r\n");
printf("ALIENTEK");
}
if(k%200==0)printf("请输入\n");
if(k%30==0) LED0=~LED0;
delay_ms(10);
}
}
}
不知道我的逻辑存在什么问题?大家帮忙看一下,新手一枚 ,望见谅!
|
|