本帖最后由 watercici 于 2018-8-8 20:46 编辑 我用串口中断接收下位机的传来的回复包的时候,出现第一个字节重复接收2到3次,不知道这是怎么回事,但是直接将下位机回复的数据传到电脑串口助手的时候确实正常的,所以我不知道自己的代码里面出了什么问题,现在猜估计是溢出中断导致的,还没有验证?所以我想问一下,接收一个字节,读一个字节也会发生溢出中断吗?为什么? 复制代码
这是接收中断的代码,数据是从接收开始出错的
usart4_tx_nbytes(uart5_buffer_data, uart5_index);这个是中断发送,还是查询发送。如果是查询,这里可能会导致串口接收数据丢失。
评分
查看全部评分
void USART1_IRQHandler(void) //USART1发送、接收中断函数
{
uint8 temp;
IWDG_Feed();
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
//ch = USART1->DR;
temp = USART_ReceiveData(USART1);
if((temp == 0x02) && (usart1.rx_start == 0)) //判断包头
{
usart1.rx_start = 1;
usart1.rx_cnt = 0;
usart1.rx_buf[usart1.rx_cnt] = temp ;
}
else if(usart1.rx_start == 1) //开始接收数据
{
usart1.rx_cnt ++;
usart1.rx_buf[usart1.rx_cnt] = temp ;
}
}
}
评分
查看全部评分