初级会员

- 积分
- 97
- 金钱
- 97
- 注册时间
- 2018-5-22
- 在线时间
- 23 小时
|

楼主 |
发表于 2018-7-4 14:55:28
|
显示全部楼层
void USART3_IRQHandler(void)
{
u8 res;
if(__HAL_UART_GET_IT(&UART3_Handler,USART_IT_ORE)!=RESET)
{
res=USART3->RDR;
__HAL_UART_CLEAR_OREFLAG(&UART3_Handler);
}
if(__HAL_UART_GET_FLAG(&UART3_Handler, USART_FLAG_NE) != RESET)
{
res=USART3->RDR;
__HAL_UART_CLEAR_NEFLAG(&UART3_Handler);
}
if(__HAL_UART_GET_FLAG(&UART3_Handler, USART_FLAG_FE) != RESET)
{
res=USART3->RDR;
__HAL_UART_CLEAR_FEFLAG(&UART3_Handler);
}
if(__HAL_UART_GET_FLAG(&UART3_Handler, USART_FLAG_PE) != RESET)
{
res=USART3->RDR;
__HAL_UART_CLEAR_PEFLAG(&UART3_Handler);
}
if(__HAL_UART_GET_IT(&UART3_Handler,UART_IT_RXNE)>0)
{
res=USART3->RDR;
Uart3_Rec_Flag=1;
if( Uart3_Rec_ComPt_Flag==0 )//
{
if(USART3_RX_STA<2000)
{
USART3_RX_BUF[USART3_RX_STA++]=res; //
}
else
{
USART3_RX_STA=0;
}
Uart3_Timeout_counter=0;
}
else
{
Uart3_Rec_ComPt_Flag=1; //
}
}
}
把例程的接收中断改成这样了,通过flag给他设定时接收,时间一过就标记接收完成,但是这样GPS就接收不到消息,然后网络通信也无法进行了。 |
|