<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 一種基于MAX3232的TMS320F2812異步串行通信系統研究和實(shí)現

一種基于MAX3232的TMS320F2812異步串行通信系統研究和實(shí)現

作者: 時(shí)間:2012-03-07 來(lái)源:網(wǎng)絡(luò ) 收藏

3 軟件設計
3.1 SCI模塊的初始化
對DSP芯片的控制是通過(guò)對它的寄存器的讀寫(xiě)來(lái)完成的,的SCI模塊包括13個(gè)寄存器。要使SCI模塊能夠正常工作,必須對它進(jìn)行初始化。其中設置主要包括:運行模式、協(xié)議、波特率、字符長(cháng)度、奇/偶校驗、停止位個(gè)數、中斷使能及級別確定等。下面為本設計中對SCI模塊的初始化程序:
void InitSciA ()
{
//配置SCITXD和SCIRXD
EALLOW:
GpioMuxRegs.CPFMUX.bit.SCITXDA_GPIOF4=1;
GpioMuxRegs.CPFMUX.bit.SCIRXDA_GPIOF5=1;
EDIS:
//軟件復位SCI
SciaRegs.SCIGTL1.bit.SWRESET=0;
//設置字符格式、協(xié)議、模式
SciaRegs.SCICCR. bit. SCICHAR=7;
SciaRegs.SCICCR.bit.PARITYENA=0;
SciaRegs.SCICCR.bit.LOOPBKENA=0;
SciaRegs.SCICCR.bit.STOPBITS=0;
SciaRegs.SCICCR. bit.ADDRIDLE. MODE=0;
//設置波特率為9600,LSPCLK=30MHz
SciaRegs.SCIHBAUD=0x0001;
SciaRegs.SCILBAUD=0x0085;
//使能發(fā)送和接收器
SciaRegs.SCICTL1.bit.TXENA=1;
SciaRegs.SCICTL1.bit.RXENA=1;
//使能中斷
PieCtrl.PIEIER9. bit.INTx1=1;
PieCtrl.PIEIER9. bit.INTx2=1;
//退出復位狀態(tài)
SciaRegs.SCICTL1.bit.SWRESET=1;
}
3.2 SCI模塊發(fā)送和接收數據的機制
SCI模塊發(fā)送和接收數據有兩種方式:一種是查詢(xún)方式,另一種是中斷方式。
查詢(xún)方式:就是程序不斷去查詢(xún)各自的狀態(tài)標志位。對于發(fā)送數據,需要查詢(xún)的是TXRDY位,如果該位為1,說(shuō)明SCITXBUF已經(jīng)準備好接收下一個(gè)發(fā)送數據。當數據寫(xiě)入SCITXBUF后,該位會(huì )自動(dòng)清零,此時(shí)如果TXENA=1,發(fā)送移位寄存器就會(huì )將SCITXBUF中的數據發(fā)送出去。而接收數據時(shí)需要查詢(xún)RXRDY位,當SCIRXBUF已經(jīng)準備好一個(gè)等待CPU讀取的數據時(shí),就會(huì )將該位置1,當數據被CPU讀走后,RXRDY會(huì )自動(dòng)清零。
中斷方式:在該種方式下,需要我們首先使能外設級、PIE級和CPU級中斷。此時(shí)TXRDY和RXRDY變成了中斷標志位,當TXRDY為1時(shí),就會(huì )產(chǎn)生中斷事件,如果各級中斷都已經(jīng)使能,則程序會(huì )進(jìn)入相應的中斷處理函數,完成數據的發(fā)送。而當RXRDY置位時(shí),就會(huì )產(chǎn)生接收中斷,如果各級中斷都已經(jīng)使能,則程序進(jìn)入相應的中斷處理函數,完成數據的接收。這里值得注意的是,2812的外設的中斷標志位一定要手動(dòng)復位,但是SCI模塊是個(gè)例外,它的中斷標志位會(huì )在響應中斷后自動(dòng)復位。
通過(guò)對查詢(xún)和中斷方式程序的分析可以看出,查詢(xún)函數位于主函數的for循環(huán)內,通過(guò)for循環(huán)不斷查詢(xún)TXRDY和RXRDY的狀態(tài),因此,程序的運行效率比較低,但是程序比較簡(jiǎn)單,易于。對于中斷方式,只要相應的中斷標志位置位,并且所有中斷級都已被使能,就能直接進(jìn)入中斷處理函數,相應的功能。因此,程序的運行效率高,但程序比較復雜。綜合考慮,最終選取數據接收采用中斷方式,數據發(fā)送采用查詢(xún)方式。圖2和圖3分別為查詢(xún)方式和中斷方式的程序流程圖。

本文引用地址:http://dyxdggzs.com/article/155198.htm

b.jpg c.jpg




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>