我是菜鸟,想请教各位大佬:
这是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
}
}
|