初级会员

- 积分
- 158
- 金钱
- 158
- 注册时间
- 2016-7-18
- 在线时间
- 22 小时
|
1金钱
我写了一个关于串口接收上位机数据并加上一些单词在发送回去的函数,有一个疑惑
void USART2_IRQHandler(void)
{
while(1)
{
while(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=SET);
*(table2+i)=USART_ReceiveData(USART2);
i++;
if(i!=0&&*(table2+i-1)=='\n')
{
*(table2+i-1)='\0';
break;
}
USART_ClearITPendingBit(USART2,USART_IT_RXNE);
}
strcat(table2,"thank");
while(*table2!='\0')
{
USART_ClearFlag(USART2,USART_FLAG_TC);
USART_SendData(USART2,(uint16_t)*table2);
table2++;
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=1);
}
i=0;
table2=table2_my;
}
USART_ClearITPendingBit(USART2,USART_IT_RXNE);这个函数的位置,最开始我是放到中断函数进来第一行(不在while里面),这时候我上位机发送abcd,返回来的数字却是bcd....,然后我把它移动到现在的位置,数据才正常,请问这是为什么啊,请大家指点一下
|
|