| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:[讨论]大家帮忙看看这段程序把,上面有两个输出,应该是一样的,但是实际却不同 ...
只看楼主 加入收藏
mrainborn
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-12-30
收藏
 问题点数:0 回复次数:1 
[讨论]大家帮忙看看这段程序把,上面有两个输出,应该是一样的,但是实际却不同

再程序末的输出部分
有两个输出
一个是从串口直接读数输出
另一个是把串口的数存到字符串里,然后再一起输出
但是这两个输出的不一样
存到字符串的那组输出比原有的数多些其他的码
各位有时间的话看一下 谢谢

#include<stdio.h>
#include<dos.h>
#include<conio.h>
#define BUFFLEN 1024
void InitCOM();
void OpenPort();
void ClosePort();
void interrupt far asyncint();
void interrupt (*asyncoldvect)();
unsigned char Buffer[BUFFLEN];
int buffin=0;
int buffout=0;
unsigned char ch;

void OpenPort()
{
unsigned char ucTemp;
InitCOM();
asyncoldvect=getvect(0x0c);
disable();
inportb(0x3f8);
inportb(0x3fe);
inportb(0x3fb);
inportb(0x3fa);
outportb(0x3fc,0x08|0x0b);
outportb(0x3f9,0x01);
ucTemp=inportb(0x21)&0xef;
outportb(0x21,ucTemp);
setvect(0x0c,asyncint);
enable();
}

void interrupt far asyncint()
{
unsigned char ch;
Buffer[buffin++]=inportb(0x3f8);
if(buffin>=BUFFLEN)
buffin=0;
outportb(0x20,0x20);
}
void ClosePort(void)
{
disable();
outportb(0x3f9,0x00);
outportb(0x3fc,0x00);
outportb(0x21,inportb(0x21)&0x10);
enable();
setvect(0x0c,asyncoldvect);
}
void InitCOM()
{
outportb(0x3fb,0x80);
outportb(0x3f8,0x06);
outportb(0x3f9,0x00);
outportb(0x3fb,0x03);

outportb(0x3f9,0x01);
}
unsigned char read_char(void)
{
int unch;
if(buffout!=buffin)
{
unch=Buffer[buffout];
buffout++;
if(buffout>=BUFFLEN)
buffout=0;
return(unch);
}
else
return(0xff);
}
void main()
{
unsigned char unChar,unchar;
short bExit_Flag=0;
int a=0;
char b[9];
char c[9]="01234567";
OpenPort();
fprintf(stdout,"\n\nReady to recrive data\n"
"press [ESC] to quite...\n\n");

while(!bExit_Flag)
{
if(kbhit())
{
unChar=getch();
switch(unChar)
{
case 0x1b: bExit_Flag=1;break;
}
}
unChar=read_char();
if(unChar!=0xff)
{
printf("%c",unChar); //从串口直接输出//
b[a]=unChar; //存到字符串//
a++;
}
if(a>=8)
{
printf("\n%s\n",b); //从字符串输出//次输出于直接输出不同,多些其他的码
a=0;
}
}
ClosePort();
}



搜索更多相关主题的帖子: 输出 
2007-03-28 09:43
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

我建议LZ在b数组的有效字符后加上'\0'.


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-28 10:54
快速回复:[讨论]大家帮忙看看这段程序把,上面有两个输出,应该是一样的,但是实际 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved