初级会员

- 积分
- 87
- 金钱
- 87
- 注册时间
- 2019-7-9
- 在线时间
- 29 小时
|
1金钱
本帖最后由 leoooo 于 2020-3-10 11:23 编辑
这是串口中断里面的
if(USART1->SR&(1<<5)) //USART1_SR寄存器的第五位是否有接收到数据 1为有数据
{
res=USART1->DR;
if(USART_RX_CNT<USART_REC_LEN)
{
USART_RX_BUF[USART_RX_CNT]=res;
USART_RX_CNT++;
}
}
这是main函数里面
if(USART_RX_CNT)
{
if(oldcount==USART_RX_CNT)//新周期内,没有收到任何数据,认为本次数据接收完成.
{
applenth=USART_RX_CNT;
oldcount=0;
USART_RX_CNT=0;
printf("用户程序接收完成!\r\n");
printf("代码长度:%dBytes\r\n",applenth);
}else oldcount=USART_RX_CNT;
}
问题:新周期内会出现没有接收完成的吗, 串口是中断进去的 有可能出现没有传输完成的数据吗? 如有可能出现,怎么解决。
多久是一个周期?
|
|