新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 115.2K串行通信C語言示例

        115.2K串行通信C語言示例

        作者: 時間:2010-09-28 來源:網絡 收藏

        unsigned char time_out;

        本文引用地址:http://www.104case.com/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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵璧县| 洛南县| 长沙市| 化德县| 伊春市| 金山区| 北海市| 康乐县| 晋江市| 潼南县| 聂拉木县| 越西县| 孟村| 甘德县| 门头沟区| 安国市| 山阴县| 佛教| 巨鹿县| 鸡东县| 昌图县| 阿拉善右旗| 江西省| 徐州市| 凉山| 峨眉山市| 余干县| 天气| 綦江县| 西乌珠穆沁旗| 黄大仙区| 丘北县| 明溪县| 平罗县| 江源县| 公安县| 宣威市| 罗城| 元氏县| 龙泉市| 遂平县|