在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DSP 與PC 機(jī)串行通訊的設(shè)計(jì)

            DSP 與PC 機(jī)串行通訊的設(shè)計(jì)

            作者: 時(shí)間:2011-01-13 來源:網(wǎng)絡(luò) 收藏


            Code Composer Studio 簡稱CCS,是TI 公司推出的為開發(fā)TMS320 系列 軟件的集成開發(fā)環(huán)境(IDE)。CCS 工作在Windows 操作系統(tǒng)下,類似于VC++的集成開發(fā)環(huán)境,采用圖形接口界面,提供有編輯工具和工程管理工具。在CC 環(huán)境下串行通信有兩種方式:即同步方式和異步方式,在此僅討論異步方式中的串行通信。PC 串行口發(fā)送器輸出端和接收器輸入端的數(shù)據(jù)格式為幀信息格式,與TMS320F240的SCI 口格式相同。通信時(shí),雙方必須約定通信數(shù)據(jù)傳輸格式、傳輸速率及各自工作方式等。本文設(shè)計(jì),當(dāng)上位機(jī)請求通訊時(shí),先發(fā)請求通訊命令,下位機(jī)有效接收并判斷,確認(rèn)后向上位機(jī)發(fā)響應(yīng)碼。上位機(jī)在收到響應(yīng)碼后,再發(fā)操作命令。雙方約定:波特率208h;8 位字符,一位停止位,無校驗(yàn);傳送方式:PC 機(jī)采用查詢方式接收數(shù)據(jù),TMS320F240 采用中斷方式接收數(shù)據(jù)。

            5 軟件設(shè)計(jì)

            5.1 串口初始化

            首先對寄存器地址、波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位進(jìn)行設(shè)置。

            void Set()

            {

            *SCICCR=0x7; //8 位字符,1 停止位,無校驗(yàn)

            *SCICTL1=0X13; //使能發(fā)送和接受

            *SCICTL2=0x03; //使能接受和發(fā)送中斷

            *SCIHBAUD=0x02; //波特率=208h,40MHZ

            *SCILBAUD=0x08; //208h=40*106/(9600*8)-1

            *SCICTL1=0x33; //使能發(fā)送和接受,復(fù)位

            *SCIPRI=0X60; //SCI 中斷(接受和發(fā)送中斷)為低優(yōu)先級中斷

            }

            5.2 中斷初始化

            a)禁止總中斷子程序

            void inline disable()

            {

            asm("setc INTM");

            asm("setc SXM");

            }

            b)使能總中斷子程序

            void inline enable()

            {

            asm("clrc INTM") ;

            }

            c)中斷服務(wù)程序

            void interrupt uarttr(){

            switch (*PVIR){

            //根據(jù)中斷向量寄存器PVIR 的值區(qū)別是接收還是發(fā)送中斷

            case 6:UartRec();

            //如果PVIR=6,則發(fā)生了接受中斷,執(zhí)行接受中斷服務(wù)程序

            }

            }

            d)當(dāng)由于干擾而引起其它中斷時(shí),中斷進(jìn)入此程序直接返回主程序

            void interrupt nothing(){

            return; }

            5.3中斷處理

            void UartRec(){

            unsigned int uwork;

            int I, k;

            k=0;

            while(1) {

            do{

            uwork=(*SCIRXST);

            }while((uwork0x40= =0));

            cReceive=(*SCIRXBUF);

            cBuffer[k]= cReceive;

            if(cReceive= =’.’) {

            cBuffer[k+1]=’