标题:
关于stm32串口接收的问题
[打印本页]
作者:
66632
时间:
2020-5-5 21:32
标题:
关于stm32串口接收的问题
附程序如下
void USART2_IRQHandler(void){
u8 res;
if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET ) //接收数据寄存器非空中断
{
res =USART_ReceiveData (USART2);//将进入串口2的哪一个数据取出
if((USART2_RX_STA&0X8000)==0) //表明 要么串口2还没有收到数据 或者 收到数据已经后被调用过
{
if(USART2_RX_STA<USART2_REC_LEN) //判断缓存器是不是已经存满了
{
TIM_SetCounter(TIM3 ,0);//设置TIMx计数器寄存器值 清零定时器 避免其计时到达 进入定时器中断
if(USART2_RX_STA==0)//判断缓存器中是否已经存入数据
TIM_Cmd (TIM3,ENABLE );//给定时器3 一个新的状态 使能它
USART2_RX_BUF[USART2_RX_STA++]=res;
}
else
{
USART2_RX_STA|=0X8000; //给接收完成标志位置1
}
}
}
}
如果串口正常接收了两次数据 ,但是第一次数据的长度比第二次收到的长,那么USART2_RX_BUF里面会有第一个数据的残留值吗?
作者:
yzx99
时间:
2020-5-7 14:28
如果你用完之后清零了就不会有
作者:
ly1972001
时间:
2020-5-7 15:56
会有残留,但不用担心。有变量USART2_RX_STA确定数据长度。
作者:
梦轩星语
时间:
2020-5-7 18:10
会有,还得优化一下
作者:
kamikazi
时间:
2020-5-7 22:47
会有,要清零
作者:
66632
时间:
2020-5-10 15:51
kamikazi 发表于 2020-5-7 22:47
会有,要清零
清零是对buf清零,还是对数据长度清零
作者:
liufei1117
时间:
2020-5-10 16:44
有点乱
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1