51单片机 C语言 串口数组赋值问题

程序代码如下:#include<reg52.h>#include<stdio.h>//打印到串口函数#defineucharunsignedchar#defineuint... 程序代码如下:#include<reg52.h>#include<stdio.h> //打印到串口函数#define uchar unsigned char#define uint unsigned int uchar date_zi[4][10]; //存放接收到的数据uint i_index=0; //接收到的字符个数uint i=0; //i字符用于循环unsigned int xia = 0; //用于保存到数据的下标void fh_zi(unsigned int a) //返回字符到串口{ ES=0; TI=0; SBUF=a; while(!TI); TI=1; ES=1;}void init(){ TMOD=0x20; TH1=0xfd; TL1=0Xfd; //TH0=(65536-45872)/256; //TL0=(65536-45872)%256; TR1=1; SM0=0; SM1=1; REN=1; EA=1; ES=1;}void main(){ i_index=0; xia=2; init(); while(1);}void ser() interrupt 4 //串口{ if(RI == 1) { RI=0; date_zi[xia][i_index] = SBUF; i_index++; if(i_index>10) //接受完10个字符后显示数组所有内容 { i_index=0; for(i=0;i<11;i++) //显示数组中所有内容 fh_zi(date_zi[0][i]); for(i=0;i<11;i++) fh_zi(date_zi[1][i]); for(i=0;i<11;i++) fh_zi(date_zi[2][i]); for(i=0;i<11;i++) fh_zi(date_zi[3][i]); } }}以16进制发送【03 55 aa 01 01 00 0a 07 03 02 ff】11个数据后,总是会多出03,ff这两个首尾字符,这是为什么?我这个代码哪里错误了? 展开
 我来答
zhxiufan
2016-09-12 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
贴上来的程序部分,修改如下:
#include<reg52.h>
#include<stdio.h> //打印到串口函数
#define uchar unsigned char
#define uint unsigned int
uchar date_zi[4][11]; //存放接收到的数据
uint i_index=0; //接收到的字符个数
uint i=0; //i字符用于循环
unsigned int xia = 0; //用于保存到数据的下标
void fh_zi(uchar a) //返回字符到串口
{
ES=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0Xfd;
//TH0=(65536-45872)/256;
//TL0=(65536-45872)%256;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
void main()
{
i_index=0;
xia=2;
init();

while(1);
}
void ser() interrupt 4 //串口
{
if(RI == 1)
{
RI=0;
date_zi[xia][i_index] = SBUF;
i_index++;
if(i_index>10) //接受完10个字符后显示数组所有内容
{
i_index=0;
for(i=0;i<11;i++) //显示数组中所有内容
fh_zi(date_zi[0][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[1][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[2][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[3][i]);
}

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式