单片机读取实时读取IO数据
我是通过一个单片机通过74HC595传输数据给另一个单片机的P0和P2口,现在我想读取数据,但发现数据明显不对。传输过来的数据有一个帧头0xaa,然后是编号,数据,如:0...
我是通过一个单片机通过74HC595传输数据给另一个单片机的P0和P2口,现在我想读取数据,但发现数据明显不对。传输过来的数据有一个帧头0xaa,然后是编号,数据,如:0xaa 0x01 0x01 0xa4。现在有这么两组数据如:0xaa 0x01 0x01 0xa4,0xaa 0x02 0x00 0xb4,但接收到数据是0xaa 0x01 0x01 0xa4,0xaa 0x01 0x00 0xb4 或者 0xaa 0x02 0x01 0xa4,0xaa 0x02 0x00 0xb4。P0口代表帧头和编号数据,P0和P2共同传输16位数据参数。
程序如下:
void read_io(void)
{
if(P0==0xaa)
{
delay(5);
if(P0==0xaa)
buf[0]=0xaa;
}
else if((P0==0x01)||(P0==0x02)||(P0==0x03))
{
delay(5);
if((P0==0x01)||(P0==0x02)||(P0==0x03))
buf[1]=P0;
}
else
{
buf[2]=P2; //数据高八位
buf[3]=P0; //数据低八位
}
} 展开
程序如下:
void read_io(void)
{
if(P0==0xaa)
{
delay(5);
if(P0==0xaa)
buf[0]=0xaa;
}
else if((P0==0x01)||(P0==0x02)||(P0==0x03))
{
delay(5);
if((P0==0x01)||(P0==0x02)||(P0==0x03))
buf[1]=P0;
}
else
{
buf[2]=P2; //数据高八位
buf[3]=P0; //数据低八位
}
} 展开
1个回答
2015-05-30 · 知道合伙人互联网行家
关注
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询