| 
 
中级会员  
 
	积分219金钱219 注册时间2015-5-11在线时间19 小时 | 
 
1金钱 
| 本帖最后由 jiangxun 于 2017-7-17 10:52 编辑 
 STM32F103 串口2接收数据丢包,中断接收代码如下 谢谢大神来解答
 void USART2_IRQHandler(void)
 {
 uint8_t res;
 if (USART_GetITStatus(USART2, USART_IT_ORE) == SET)
 {
 USART_ClearITPendingBit(USART2,USART_IT_ORE);
 USART_ReceiveData( USART2 );
 
 }
 if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收到数据
 {
 USART_ClearITPendingBit(USART2,USART_IT_RXNE);
 res =USART_ReceiveData(USART2);         //读取接收到的数据
 if(USART2_RX_CNT<64)
 {
 USART2_RX_BUF[USART2_RX_CNT]=res;                //记录接收到的数据
 USART2_RX_CNT++;
 }else USART2_RX_CNT = 0;
 }
 }
 
 
 我发送的数据是65 FF 06 83 00 15 01 00 15
 接收到的是 65 FF 06 83 15 15
 
 
 
 | 
 
最佳答案
查看完整内容[请看2#楼] 看代码没问题啊,USART2_RX_CNT初始化了吗?初值是多少?另外,if语句错在哪里?小于错了吗? |