|
我是菜鳥,想請(qǐng)教各位大佬:
這是STM32串口部分的一段程序,我有幾個(gè)疑問:
1.u8是定義ReceiveOK(USART_TypeDef *USARTx)為char類型用的嗎?字符可以帶參數(shù)USART_TypeDef *USARTx?
2.在u8 ReceiveOK(USART_TypeDef *USARTx)這段程序里*USARTx這是一個(gè)指針類型,指向USARTx?
3.return返回的值1、2、0是返回給ReceiveOK(USART_TypeDef *USARTx)這個(gè)整體嗎?
4.這段程序的return 0 的部分是不是有問題,不會(huì)返回0?
//程序如下:
//接收一幀數(shù)據(jù)函數(shù); 參數(shù):串口; 返回值:1=ON,2=OFF,0=無效
u8 ReceiveOK(USART_TypeDef *USARTx)
{
vu32 cnt=0;
while(1)
{
RxBuffer[RxCount ++]=Receive1Byte (USARTx);
if(strstr ((char*)RxBuffer ,"ON")!=NULL ) //接收字符串中查找ON
{
RxCount =0; //為下條接收指令做好準(zhǔn)備,否則會(huì)導(dǎo)致下一條指令無響應(yīng)
return 1;
}
else
if(strstr ((char*)RxBuffer ,"OFF")!=NULL )
{
RxCount =1;
return 2;
}
else
if(RxCount >3)
RxCount =0; //如果接收了3字節(jié)(根據(jù)發(fā)送長(zhǎng)度來定)但沒有收到有效指令,則歸零,重新接收。
cnt++;
if (cnt>100000)
return 0; //如果超時(shí)則直接返回0
}
}
|
|