新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SC16IS752在ARM擴展串口中的應用

        SC16IS752在ARM擴展串口中的應用

        作者: 時間:2012-04-13 來源:網絡 收藏

        5.初始化寄存器

        初始化寄存器的程序如下:
        /*初始化*/
        void init_is752(void) {
        /*初始化第一個串口A.*/
        write_is752_rega(IS752_CH_A,IS752_LCR,0xbf); write_is752_rega(IS752_CH_A,IS752_EFR,IS752_EFR_VAL);
        write_is752_rega(IS752_CH_A,IS752_LCR,0x00);
        /*設置SC16IS752 串口A 中斷.*/
        write_is752_rega(IS752_CH_A, IS752_IER, IS752_IER_VAL);
        write_is752_rega(IS752_CH_A, IS752_FCR, IS752_FCR_VAL);
        write_is752_rega(IS752_CH_A, IS752_MCR, IS752_MCR_VAL);
        write_is752_rega(IS752_CH_A, IS752_EFCR, IS752_EFCR_VAL);
        /*初始化SC16IS752第二個串口B,同串口A,略. 清寄存器程序,略*/
        } /* 寫數據 */
        void write_is752_rega(unsigned char chx,unsigned char addr, unsigned char data){
        unsigned char temp;
        if((IS752_CH_A == chx) ||(IS752_CH_B == chx)){
        CLR_IS752_CS;
        temp = addr3;
        temp |= chx;
        spi_send_byte(SPI1,tmp);
        spi_send_byte(SPI1,data); /*發送數據.*/
        SET_IS752_CS;
        }
        }
        /*讀數據*/
        unsigned char read_is752_rega(unsigned char chx, unsigned char addr){
        unsigned char temp;
        if((IS752_CH_A == chx) ||(IS752_CH_B == chx)){
        CLR_IS752_CS;
        temp = addr3;
        temp |= 0x80|chx;
        spi_send_byte(SPI1,temp);
        spi_send_byte(SPI1,0xff);
        SET_IS752_CS;
        return(S1SPDR);
        }
        }

        SPI程序接口在其他書籍中有詳細介紹,在此不作描述(見參考文獻1)。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴城市| 东丽区| 香格里拉县| 册亨县| 三亚市| 华容县| 新源县| 贵港市| 聂拉木县| 新宁县| 湾仔区| 安泽县| 郓城县| 汝阳县| 左云县| 图片| 阿尔山市| 车险| 腾冲县| 大邑县| 花莲县| 通海县| 安溪县| 邯郸市| 吕梁市| 岫岩| 云南省| 锦州市| 汶川县| 平陆县| 云安县| 汉沽区| 江陵县| 子洲县| 临江市| 胶南市| 增城市| 井研县| 罗平县| 蓝田县| 浮梁县|