我想实现通过串口调试助手向单片机发送 good 然后单片机回复OK U0C0.c 中的程序如下 发送good 的确可以回复 OK 但是 发送g 也回复 OK 怎么回事啊????求指教
// USER CODE BEGIN (ASC0IC,1)
char Inbuf[4];
uword First_Int=0;
char temp[]={'O','K'};
// USER CODE END
_interrupt(U0C0_0INT) void U0C0_ASC_vi0IC(void)
{
// USER CODE BEGIN (ASC0IC,2)
U0C0_0IC=0x0; //********禁止串口中断******//
// USER CODE END
if (U0C0_PSR & 0x4000) // Receive interrupt flag
{
// USER CODE BEGIN (ASC0IC,4)
Inbuf[First_Int]=U0C0_RBUF;
First_Int++;
if(First_Int>=4)
{
First_Int=0;
}
U0C0_0IC = 0x006C; //********开启串口中断******//
// USER CODE END
U0C0_PSCR |= 0x4000; // clear PSR_RIF
}
// USER CODE BEGIN (ASC0IC,15)
if(Inbuf[]=={'g','o','o','d'})
for(uword i=0;i<2;i++)
U0C0_ASC_vSendData(temp[i]); //********判断收到的是不是good,回复OK******//
for(uword a=0;a<4;a++)
Inbuf[a]=0;
First_Int=0; //********将接收数组清零和首位清零******//
// USER CODE END
} // End of function U0C0_ASC_vi0IC
Inbuf[]=={'g','o','o','d'}
这句,谁告诉你可以这么干的?
楼主暴强! if(Inbuf[]=={'g','o','o','d'})这个是什么语法?我表示孤陋寡闻。
51嵌入式,嵌入式开发的家园!51嵌入式官方QQ群52497844,欢迎爱好者加入。
我猜的啊!!?? 难道有秀下限了??!! 应该怎么写啊??
字符串比较应该用什么strcmp还是啥,具体查查msdn。
51嵌入式,嵌入式开发的家园!51嵌入式官方QQ群52497844,欢迎爱好者加入。
如果不用库函数,则自己写for循环,一个一个比较。
if (*(u32 *)Inbuf==((u32)'g'*256*256*256+(u32)'o'*256*256+(u32)'o'*256+'d')
我用了 你的方法 结果 编译的时候报错了 这个是不是应该 包含一些头文件啊??
哦哦 好的 我用别的方法实现了 再试一试你的这个 谢谢斑竹啦~~~~
这条语句是怎么来的啊???是什么意思啊??去哪里学??