找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

串口数组赋值错误

查看数: 4782 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-9-12 01:03

正文摘要:

程序代码如下: #include<reg52.h> #include<stdio.h> //打印到串口函数 #define uchar unsigned char #define uint unsigned int uchar date_zi[4][10];        //存放接 ...

回复

ID:134543 发表于 2016-9-13 23:19
程序错误如下:
void fh_zi(unsigned int a)        //返回字符到串口
{
ES=0;
//TI=0;   //删除
SBUF=a;
while(!TI);
TI=0;   //TI值0
ES=1;
}
以及串口接收函数中:
if(i_index==10)
ID:97438 发表于 2016-9-12 14:44
ahshmj 发表于 2016-9-12 11:13
串口寄存器是8位的!unsigned char。

有这个错误,但不是致命错误
ID:97438 发表于 2016-9-12 14:43
楼主你这个小程序问题多多。。。
ID:7485 发表于 2016-9-12 11:13
串口寄存器是8位的!unsigned char。
ID:79358 发表于 2016-9-12 11:09
应该是程序问题,判断接收头和尾的时候多装入了一次
ID:134543 发表于 2016-9-12 01:27
没有人知道?
ID:97438 发表于 2016-9-12 01:03
void ser() interrupt 4 //串口
{
        if(RI == 1)
        {
                RI=0;
                date_zi[xia][i_index] = SBUF;
                i_index++;
                if(i_index==10)        //这里改等于10,不然将会写入到date_zi[xia][10]中,数组访问溢出!!!
                {
                        i_index=0;
                        for(i=0; i<10; i++)      //这里的11改成10,不然同样是数组访问溢出的问题
                                fh_zi(date_zi[0][i]);
                        for(i=0; i<10; i++)
                                fh_zi(date_zi[1][i]);
                        for(i=0; i<10; i++)
                                fh_zi(date_zi[2][i]);
                        for(i=0; i<10; i++)
                                fh_zi(date_zi[3][i]);
                }


        }
}

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表