单片机串口通讯问题 怎样编程能让单片机读出sbuf具体数据 根据数据做出相应的反应?
单片机串口通讯问题怎样编程能让单片机读出sbuf具体数据根据数据做出相应的反应?如:只有接受到0x00时让LED亮一下,其他数据不起作用...
单片机串口通讯问题 怎样编程能让单片机读出sbuf具体数据 根据数据做出相应的反应? 如:只有接受到0x00时让LED亮一下,其他数据不起作用
展开
2个回答
展开全部
我编的程序,收到不同的数据,不同的设备开启或停止
if(RI) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
switch(tmp )
{
case 0x22:shebei1=0;break;
case 0x33:shebei1=1;break;
case 0x44:shebei2=0;break;
case 0x55:shebei2=1;break;
case 0x66:shebei3=0;break;
case 0x77:shebei3=1;break;
case 0x88:shebei4=0;break;
case 0x99:shebei4=1;break;
// case 0xaa:shebei5=0;break;
// case 0xbb:shebei5=1;break;
// case 0xcc:shebei6=0;break;
// case 0xdd:shebei6=1;break;
case 0x17:shebei5=0;break;
case 0x18:shebei5=1;break;
case 0x19:shebei6=0;break;
case 0x20:shebei6=1;break;
case 0x24:fmq=0;break;
case 0x25:fmq=1;break;
}
if(RI) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
switch(tmp )
{
case 0x22:shebei1=0;break;
case 0x33:shebei1=1;break;
case 0x44:shebei2=0;break;
case 0x55:shebei2=1;break;
case 0x66:shebei3=0;break;
case 0x77:shebei3=1;break;
case 0x88:shebei4=0;break;
case 0x99:shebei4=1;break;
// case 0xaa:shebei5=0;break;
// case 0xbb:shebei5=1;break;
// case 0xcc:shebei6=0;break;
// case 0xdd:shebei6=1;break;
case 0x17:shebei5=0;break;
case 0x18:shebei5=1;break;
case 0x19:shebei6=0;break;
case 0x20:shebei6=1;break;
case 0x24:fmq=0;break;
case 0x25:fmq=1;break;
}
追问
tmp是自定义变量吗
追答
是的,用于临时存放接收到的数据,一般不要 直接判断sbuf的值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |