微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 搞定单片机多字节串口接收

搞定单片机多字节串口接收

时间:11-19 来源:互联网 点击:

。要是能有4bit在一起的数据类型就好了,,verilog代码里面是可以的,C语言里貌似不行埃

要想能在例如51单片机上运行,只能按照下面的折中方式了,也就是把i相关的量都与一个0x0f

全局变量

bit ret_flag;

unsigned char receive[16]={0};// 可以考虑在定义时加上idata,毕竟还可能是32

//或者64长度的数组呢unsigned char idata receive[16]={0};

unsigned char boardaddress;

中断函数

void ser()interrupt 4

{

static unsigned char i=0;

static unsigned char total=0;

RI=0;

receive[i&0x0f]=SBUF;

total=total-receive[(i-7)&0x0f]+receive[(i-1)&0x0f];

if(receive[(i-9)&0x0f]==0xaa&&receive[(i-8)&0x0f]==0x55

&&receive[(i-7)&0x0f]==boardaddress&&receive[i&0x0f]==total

)

{

ret_flag=1;

ES = 0;

}

i++;

}

这样就可以了。等我有机会试一下吧,。我写了这么多,想必大家都能搞定串口接收了吧。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top