新聞中心

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

        通信波特率115.2K的串行通信C語言示例

        作者: 時間:2012-02-19 來源:網(wǎng)絡(luò) 收藏

        unsigned char time_out;

        本文引用地址:http://www.104case.com/article/172057.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 波特 串行

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 搜索| 金川县| 金乡县| 凤凰县| 义乌市| 尼勒克县| 和林格尔县| 恩平市| 青海省| 寿阳县| 宁津县| 德保县| 德昌县| 毕节市| 泾源县| 伊通| 乃东县| 华池县| 大姚县| 新郑市| 扬中市| 同江市| 五大连池市| 沂源县| 大石桥市| 民丰县| 宝丰县| 河东区| 乐至县| 清徐县| 仁寿县| 乡宁县| 绥阳县| 肃宁县| 新蔡县| 定安县| 武威市| 奈曼旗| 通辽市| 德兴市| 新蔡县|