新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 115.2K串行通信C語言示例

115.2K串行通信C語言示例

作者: 時(shí)間:2010-09-28 來源:網(wǎng)絡(luò) 收藏

unsigned char time_out;

本文引用地址:http://butianyuan.cn/article/173198.htm

void init_com1(void) {
outportb(0x3fb,0x80);
outportb(0x3f8,1);
outportb(0x3f9,0x0);
outportb(0x3fb,0x3);
}
void sen_com1(unsigned char d) {
long i;
time_out=0;
while (!(inportb(0x3fd)0x20));
outportb(0x3fd,0x0);
outportb(0x3f8,d);
i=clock();
while (1) {
if (clock()>(i+8)) {time_out=1;return;}
if ((inp(0x3fd)0x1)==1) break;
}
if (inp(0x3f8)!=d) {time_out=2;return;}
}
unsigned char rec_com1(void) {
long i;
unsigned char d;
time_out=0;
i=clock();
while (1) {
if (clock()>(i+8)) {time_out=1;return(0);}
if ((inp(0x3fd)1)==1) break;
}
d=inp(0x3f8);
while (!(inportb(0x3fd)0x20));
outportb(0x3fd,0x0);
outportb(0x3f8,d);
return(d);
}
void main(void) {
int i;
long st;
init_com1();
st=clock();
sen_com1(0xaa);
if (time_out) {printf(CPU not ready!);exit(-1);}
sen_com1(0xaa);
if (time_out) {printf(CPU not ready!);exit(-1);}
for (i=0;i1000;i++) {
sen_com1(i);
if (time_out) {printf(CPU not ready!);exit(-1);}
}
printf(Total use %3.2f S.,(clock()-st)/18.2);
exit(1);
}


上一頁 1 2 下一頁

關(guān)鍵詞: 示例 語言 通信 串行 115.2K

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉