我是菜鳥,想請教各位大佬:
這是STM32串口部分的一段程序,我有幾個疑問:
1.u8是定義ReceiveOK(USART_TypeDef *USARTx)為char類型用的嗎?字符可以帶參數USART_TypeDef *USARTx?
2.在u8 ReceiveOK(USART_TypeDef *USARTx)這段程序里*USARTx這是一個指針類型,指向USARTx?
3.return返回的值1、2、0是返回給ReceiveOK(USART_TypeDef *USARTx)這個整體嗎?
4.這段程序的return 0 的部分是不是有問題,不會返回0?
//程序如下:
//接收一幀數據函數; 參數:串口; 返回值: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; //為下條接收指令做好準備,否則會導致下一條指令無響應
return 1;
}
else
if(strstr ((char*)RxBuffer ,"OFF")!=NULL )
{
RxCount =1;
return 2;
}
else
if(RxCount >3)
RxCount =0; //如果接收了3字節(根據發送長度來定)但沒有收到有效指令,則歸零,重新接收。
cnt++;
if (cnt>100000)
return 0; //如果超時則直接返回0
}
}
|