一直接收不到数据返回
[mw_shl_code=c,true]u8 sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
{
u8 res=0;
if((u32)cmd<=0XFF)
{
USART2->DR=(u32)cmd;
}
if(ack&&waittime) //?è??????????
{
while(--waittime) //?????????±
{
delay_ms(10);
if(USART2_RX_STA&0X8000)//?????????????????á??
{
if(sim900a_check_cmd(ack))break;//???????§????
USART2_RX_STA=0;
}
}
if(waittime==0)res=1;
}
return res;
}[/mw_shl_code]
使用这个函数会一直卡在if(USART2_RX_STA&0X8000)//这句话,等待返回\r\n,但是我用的原子哥的源码uart2中的程序,USART2_RX_STA最高位始终没有置1,串口二代码如下,求解救!!!
[mw_shl_code=c,true]void USART2_IRQHandler(void) //?®??1????·??????ò
{
u8 res;
if(USART2->SR&(1<<5))//??????????
{
res=USART2->DR;
if(USART2_RX_STA<1024) //??????????????
{
TIM4->CNT=0; //?????÷????
if(USART2_RX_STA==0)TIM4_Set(1); //?????¨?±?÷4??????
UART2_Rev_Buf[UART2_Rev_Lenght++]=res; //??????????????
}
else
{
USART2_RX_STA|=1<<15; //????±ê???????ê??
}
}
} [/mw_shl_code]
不知道是什么问题了,求帮忙,毕设刚开始做啊
|