TMS320C3x DSP和PC機的異步串行通信設(shè)計
傳輸時,發(fā)送雙方應(yīng)按照共同遵循的協(xié)議進(jìn)行初始化。通信協(xié)議采用起止式異步通信協(xié)議,下面分別是DSP對MC6850和上層PC機軟件對串行口初始化操作的源程序代碼。
4.1 MC6850異步串口通信程序設(shè)計
加電之后,6850處于閉鎖狀態(tài),以避免輸出錯誤的發(fā)送。使用前,必須通過程序?qū)⒖刂萍拇嫫鞯腃R0和CR1置“1”,以進(jìn)行主復(fù)位,使其從閉鎖狀態(tài)釋放。然后就可以對控制寄存器編程,以確定6850的時鐘分頻、數(shù)據(jù)格式和發(fā)送與接收控制功能等。以下是在Code Composer集成開發(fā)環(huán)境下,用C語言實現(xiàn)對6850的初始化設(shè)置和發(fā)送數(shù)據(jù)程序。本文引用地址:http://www.ex-cimer.com/article/152189.htm
4.2 PC機通信程序設(shè)計
在VC++6.0環(huán)境下,利用PC機進(jìn)行串口通信的常用方法有兩種:(1)調(diào)用Windows API(Application Program Interface)函數(shù);(2)使用ActiveX的MSComm控件。第一種方法需聲明及調(diào)用許多API函數(shù),十分煩瑣。故本文采用第二種方法。
PC機通信的具體實現(xiàn)過程如下:
第一步,啟動VC++6.0,新建一個基于對話框的應(yīng)用程序TxRx。
第二步,在對話框中插入串口控件,增加新的靜態(tài)文本、編輯框和按鈕控件,并為它們添加相應(yīng)的變量。其屬性如下:
第三步,在TxRxDlg.cpp文件中添加有關(guān)程序代碼。
首先,在文件頭第一條注釋行中加入全局變量說明。
其次,需要初始化串口參數(shù),在OnInitiDialog()函數(shù)中TODO語句后加入以下代碼:
//先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)
評論