初级会员
- 积分
- 175
- 金钱
- 175
- 注册时间
- 2017-12-31
- 在线时间
- 40 小时
|
楼主 |
发表于 2018-10-12 09:37:08
|
显示全部楼层
前辈,我按照你的操作,也不行。我用硬件调试,发现每次都进不去接收中断,然后我就把接收中断改了,之前用的接受中断是咱们原子例程的:
if((USART_RX_STA&0x8000)==0)
{
if(USART_RX_STA&0x4000)
{
if(Res!=0x0a)USART_RX_STA=0;
else USART_RX_STA|=0x8000;
}
else
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
}
}
}
直接改成了:if(USART_GetITStatus(UART7, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(UART7,USART_IT_RXNE);
Res =USART_ReceiveData(UART7);//(USART1->DR);
}
下面这个 if(USART_GetITStatus(UART7, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(UART7,USART_IT_RXNE);
Res =USART_ReceiveData(UART7);//(USART1->DR);
}
是一定能进的。 我现在就不知道为什么,我用网络调试助手发1,Res读取的数是10,而且一直是10. |
|