2019-03-24 11:34发布
面纱如雾 发表于 2014-5-7 14:11 现在我就想在程序中检测返回值,我用strstr()程序,但是我在哪个寄存器中去查找呢?
lcofjp 发表于 2014-5-7 16:48 你是要从串口寄存器一个字节一个字节去接收的,而不是会从寄存器中能把整个数据回复读出来。 串口寄存器 ...
lcofjp 发表于 2014-5-8 08:00 很明显你现在的代码离你要实现的功能差很。我也不用430好几年了,你最好找个人实际的给你指导一下。脑海 ...
最多设置5个标签!
你是要从串口寄存器一个字节一个字节去接收的,而不是会从寄存器中能把整个数据回复读出来。
串口寄存器一般只能保存一个字节,例如模块一般返回OK ,则要从串口寄存器中读取三个值才行,读出来之后放到内存缓冲区再去判断返回值是什么。所以处理流程是非常复杂的,因为返回的内容绝对不总是OK,所以你要考虑周全,说太多了也没用,看样子你是新手,要慢慢来。
我想先把"OK“检测出来,然后依葫芦画瓢检测其他返回值。我写了这样一个程序,你看看对不对?谢谢你!
/****************************接收返回值函数**************************
*函数原型:void Receive(void)
*函数功能:
*输入参数:无
*输出参数:无
**********************************************************************/
void Receive(void)
{
if(URXIE0) //如果是接送中断,则进行处理——————————————————————————这个判断对不对????????
{
URXIE0 = 0; //清除接收中断标志位
Rec_Buf[j] = RXBUF0; //将接收到的字符串存到缓存中——————————————————————这个寄存器赋值对不对?????
j++; //缓存指针向后移动
if(j>100) //如果缓存满,将缓存指针指向缓存的首地址
{
j = 0;
}
}
}
/*****************判断缓存中是否含有指定的字符串函数******************
*函数原型:int Hand(unsigned char *a)
*函数功能:判断缓存中是否含有指定的字符串
*输入参数:unsigned char *a 指定的字符串
*输出参数:int 1---含有 0---不含有
*调用模块:无
*******************************************************************/
int Hand(unsigned char *a)
{
if(strstr(Rec_Buf,a)!=NULL)
return 1;
else
return 0;
}
谢谢你指点!
一周热门 更多>