中级会员
 
- 积分
- 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语句错在哪里?小于错了吗?
|