我打印了USART2_RX_STA&0X8000的值,一直都是0,不管是在If内还是If外,如果把握手这个函数注销的话,整个模块又可以运行
想了很久也不知道为什么,求各位大神能给个正解参考参考,谢谢了
[mw_shl_code=c,true]u8 PS_HandShake(u32 *PS_Addr)
{
SendHead();
SendAddr();
MYUSART_SendData(0X01);
MYUSART_SendData(0X00);
MYUSART_SendData(0X00);
delay_ms(200);
printf("
%d",USART2_RX_STA&0X8000);
if(USART2_RX_STA&0X8000)
{
if(
USART2_RX_BUF[0]==0XEF
&&USART2_RX_BUF[1]==0X01
&&USART2_RX_BUF[6]==0X07
)
{
*PS_Addr=(USART2_RX_BUF[2]<<24) + (USART2_RX_BUF[3]<<16)
+(USART2_RX_BUF[4]<<8) + (USART2_RX_BUF[5]);
USART2_RX_STA=0;
return 0;
}
USART2_RX_STA=0;
}
return 1;
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
先用串口调试助手,调试下你的模块吧
一周热门 更多>