本文整理汇总了C++中USART::ReceiveBufferSize方法的典型用法代码示例。如果您正苦于以下问题:C++ USART::ReceiveBufferSize方法的具体用法?C++ USART::ReceiveBufferSize怎么用?C++ USART::ReceiveBufferSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类USART
的用法示例。
在下文中一共展示了USART::ReceiveBufferSize方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetStateOrder
//监听一个端口,返回一个命令
u8 Transmission::GetStateOrder(USART &ListeningCOM)
{
u8 comand[8]={0};
u8 ch=0;
u8 num = ListeningCOM.ReceiveBufferSize();
if(num>7) //一帧命令包含8个字节
{
ListeningCOM.GetReceivedData(&ch,1);
if(ch == 0xFF)
{
ListeningCOM.GetReceivedData(&ch,1);
if(ch == 0xDD)
{
while(ListeningCOM.ReceiveBufferSize()<6);//等待数据
comand[0]=0xff;
comand[1]=0xDD;
ListeningCOM.GetReceivedData(comand+2,6);
ListeningCOM.ClearReceiveBuffer();
return CommandParsing(comand); //解包
}
else return 0;
}
else
return 0;
}
else
return 0;
}
示例2:
bool MHZ14::Updata()
{
//向模块发送获取数据
CO2.SendData(Command_getvalue,9);
//判断是否有数据返回
if(CO2.ReceiveBufferSize()<9)
{
CO2.ClearReceiveBuffer(); //清空接收缓存
return false;
}
else
{
CO2.GetReceivedData(rev_buffer,9); //取出一帧数据
CO2.ClearReceiveBuffer(); //清空接收缓存
if(SumCheck(rev_buffer)==false) //校验和
return false;
else
{
DATA_H=rev_buffer[2];
DATA_L=rev_buffer[3];
CO2_Concentration=rev_buffer[2]*256+rev_buffer[3]; //计算浓度
return true;
}
}
}
示例3: main
int main()
{
u8 command[6];
u8 datatemp[18];//数据暂存
u8 tagInfo[18];
u8 sensor[16];//保存传感器型号
u8 basic_information[6];//基础信息
u8 version[16];//版本
tskmgr.DelayMs(1000);
tskmgr.DelayMs(1000);
//设置模式
//设置名字密码
//设置IP地址
//复位
WIFI.SendData(CLOSS,6); //关闭回显
tskmgr.DelayMs(1000);
WIFI.SendData(Command1,13); //开启多路连接
tskmgr.DelayMs(1000);
WIFI.SendData(Command2,21); //开启服务器模式
tskmgr.DelayMs(1000);
equipment[0]=2;//测试用 将设备二加入
// DATA_COM.SendData(c,8); //连续发送命令
while(1)
{
//接收从模块数据
if(DATA_COM.ReceiveBufferSize()>=40) //如果接收到了一帧数据
{
u32 check=10,moduleNo;
u8 sum=0;
u8 FFAA=0;
DATA_COM.GetReceivedData(&FFAA,1); //找包头
if(FFAA==0xff)
{
DATA_COM.GetReceivedData(&FFAA,1); //找包头
if(FFAA==0xcc)
{
DATA_COM.GetReceivedData(datatemp,18);
moduleNo=datatemp[0]+datatemp[1]+datatemp[2]+datatemp[3];
for(u8 i=0;i<10;i++) //查询是否有这个设备
{
if(moduleNo==equipment[i])
check=0;//有这个设备
}
for(u8 i=0;i<16;i++)
{
sum+=datatemp[i]; //j校验和
}
sum=sum+0XCB; //加上包头
if(sum==datatemp[17])
check=check+1;
//使用WIFI发送数据给上位机
if(check==1)
{
WIFI.SendData(Command3,17);
tskmgr.DelayMs(100);
WIFI.ClearSendBuffer();
WIFI.SendData(packgroup.MAINToUser(datatemp[5],datatemp[6],datatemp[7],moduleNo,datatemp[4]),20);
tskmgr.DelayMs(100);
WIFI.ClearReceiveBuffer();//清除接收缓存
WIFI.ClearSendBuffer(); //清除发送缓存
}
}
}
}
//从上位机得到命令()
if(WIFI.ReceiveBufferSize()>40)
{
u8 ch=0;
u8 temp_cmd;
u32 temp;
//test
while(WIFI.ReceiveBufferSize()>8)
{
WIFI.GetReceivedData(&ch,1);
if(ch==0xff)//判断包头
{
WIFI.GetReceivedData(&ch,1);
if(ch==0xdd)//判断包头
{
//得到指令
WIFI.GetReceivedData(command,6);
WIFI.ClearReceiveBuffer();
temp_cmd=command[4]; //得到命令位
temp=command[0]+command[1]+command[2]+command[3];//得到设备号
//命令处理
if(temp_cmd==0XAA)//如果命令是注册
{
//读取RFID 将结果给上位机*********************************************
//.........这里部分代码省略.........