本帖最后由 yurinacn 于 2012-10-23 15:44 编辑
unsigned char a[10];
unsigned char *pA;
unsigned char count;
void ser() interrupt 4
{
if (RI)
{
if(count)
{
count--;
*pA++ = SBUF;
}
else
{
count = SBUF; //未检查count可能超过数组a大小
pA = a;
}
}
}
大概就是这个意思,可能不对,急着走
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
如果是我,我会这么做:
- unsigned char idata a[10];
- unsigned char k=0, flag=0;
- void ser() interrupt 4
- {
- if(RI)
- {
- RI = 0;
- //本次数据未处理完之前,不再接收新数据
- if(!flag)
- {
- a[k++] = SBUF;
- if(k == a[0])
- {
- flag = 1;
- }
- }
- }
- else
- {
- TI = 0;
- }
- }
复制代码一周热门 更多>