




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、CC2530串口串口通信(Serial Communication), 是指外設(shè)和計(jì)算機(jī)間,通過數(shù)據(jù)信號(hào)線 、地線、控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,但其傳輸速度比并行傳輸?shù)汀9ぷ鞣绞接捎?CPU 與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有 接收移位寄存器 (串并)和 發(fā)送移位寄存器 (并串). 在數(shù)據(jù)輸入過程中,數(shù)據(jù) 1 位 1 位地從外設(shè)進(jìn)入接口的 接收移位寄存器 ,當(dāng) 接收移位寄存器 中已接收完 1 個(gè)字符的各位后,數(shù)據(jù)就從 接收移位寄存器 進(jìn)入 數(shù)據(jù)輸入寄存器 . CPU 從
2、數(shù)據(jù)輸入寄存器 中讀取接收到的字符.(并行讀取,即 D7D0 同時(shí)被讀至累加器中). 接收移位寄存器 的移位速度由 接收時(shí)鐘 確定.在數(shù)據(jù)輸出過程中,CPU 把要輸出的字符(并行地)送入 數(shù)據(jù)輸出寄存器 , 數(shù)據(jù)輸出寄存器 的內(nèi)容傳輸?shù)?發(fā)送移位寄存器 ,然后由 發(fā)送移位寄存器 移位,把數(shù)據(jù) 1 位 1 位地送到外設(shè). 發(fā)送移位寄存器 的移位速度由 發(fā)送時(shí)鐘 確定.接口中的 控制寄存器 用來容納 CPU 送給此接口的各種控制信息,這些控制信息決定接口的工作方式. 狀態(tài)寄存器 的各位稱為 狀態(tài)位 ,每一個(gè)狀態(tài)位都可以用來指示數(shù)據(jù)傳輸過程中的狀態(tài)或某種錯(cuò)誤.例如,用狀態(tài)寄存器的 D5 位為 1 表
3、示 數(shù)據(jù)輸出寄存器 空,用 D0 位表示 數(shù)據(jù)輸入寄存器滿 ,用 D2 位表示 奇偶檢驗(yàn)錯(cuò) 等.能夠完成上述 串 并 轉(zhuǎn)換功能的電路,通常稱為 通用異步收發(fā)器 (UART :Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550USB轉(zhuǎn)串口即實(shí)現(xiàn)計(jì)算機(jī)USB接口到通用串口之間的轉(zhuǎn)換。為沒有串口的計(jì)算機(jī)提供快速的通道,而且,使用USB轉(zhuǎn)串口設(shè)備等于將傳統(tǒng)的串口設(shè)備變成了即插即用的USB設(shè)備。對(duì)于大多數(shù)工程師來說,開發(fā)USB2.0 接口產(chǎn)品主要障礙在于:要面對(duì)復(fù)雜的USB2.0協(xié)議、自己編寫USB設(shè)
4、備的驅(qū)動(dòng)程序、熟悉單片機(jī)的編程。這不僅要求有相當(dāng)?shù)腣C編程經(jīng)驗(yàn)、還能夠編寫USB接口的硬件(固件)程序。所以大多數(shù)人放棄了自己開發(fā)USB產(chǎn)品。為了將復(fù)雜的問題簡(jiǎn)單化,可以使用USB轉(zhuǎn)串口模塊。這個(gè)模塊可以被看作是一個(gè)USB2.0協(xié)議的轉(zhuǎn)換器,將電腦的USB2.0接口轉(zhuǎn)換為一個(gè)透明的并行總線,就象單片機(jī)總線一樣。從而幾天之內(nèi)就可以完成USB2.0產(chǎn)品的設(shè)計(jì)。如何知道串口號(hào)COM ?在首次安裝USB轉(zhuǎn)串口驅(qū)動(dòng)時(shí),其串口號(hào)由WINDOWS自動(dòng)分配(通常從COM2開始分配),安裝完成后可在設(shè)備管理中點(diǎn)擊屬性修改串口號(hào)。修改方法:右鍵點(diǎn)擊“我的電腦”,點(diǎn)擊“設(shè)備管理器”。在彈出的設(shè)備管理器對(duì)話框中點(diǎn)擊“
5、端口COM和LPT”前面的“+號(hào)”,然后右鍵點(diǎn)擊“USB-SERIAL CH340”,選擇“屬性”,然后再彈出的對(duì)話框里選擇“端口設(shè)置”標(biāo)簽,點(diǎn)擊“高級(jí)”按鈕,然后在彈出的對(duì)話框中將會(huì)看到在“COM端口號(hào)”右邊有個(gè)下拉選擇組合框,點(diǎn)擊選擇想要設(shè)置的COM端口號(hào),最后依次點(diǎn)擊“確定”。(好像不行,查看了一下電腦上的該端口波特率9600都能通訊就是說電腦上設(shè)置沒用或者說自己修改端口號(hào)后就不能用了,而且換回來后原先能用的后來又不行了!重啟后又好了。后來又試了一下,串口號(hào)是可以改變的,要先把串口調(diào)試軟件關(guān)掉,后在按上述修改)。串口實(shí)驗(yàn)總結(jié):初始化串口需要的工作(1)系統(tǒng)時(shí)鐘設(shè)為高速晶振(CLKCONC
6、MD寄存器,系統(tǒng)時(shí)鐘設(shè)置方法:1.第七位16MRC和32M晶振各有特點(diǎn),2.第六位適用于用于驅(qū)動(dòng)休眠時(shí)鐘,為看門狗產(chǎn)生滴答時(shí)鐘,并可以用作定時(shí)器TIM2的閘門(strobe)用來計(jì)算休眠定時(shí)器的休眠時(shí)間,自己看情況選擇。3.第5-3位設(shè)置定時(shí)器 。4.第2-0位決定真正的系統(tǒng)主時(shí)鐘,是在第七位的基礎(chǔ)上進(jìn)一步劃分成更小的頻率)(2)等時(shí)鐘設(shè)置穩(wěn)定(CC2530該位在數(shù)據(jù)手冊(cè)上沒有標(biāo)注但是CC2430上有備注可以用在CC2530上,也可以采用在初始化函數(shù)后面有足夠的延時(shí)程序,否則就會(huì)出現(xiàn)剛開始打印時(shí)有亂碼之后就好了的情況,兩種方法等待時(shí)鐘穩(wěn)定)(3)分頻設(shè)置,(4)關(guān)閉不用的振蕩器,(5)對(duì)于使用
7、的P口設(shè)置備用1是P0口,備用2是P1口,(6)UART0相關(guān)參數(shù)的設(shè)置,關(guān)于校驗(yàn)位奇偶位停止位高低電平等都在相關(guān)寄存器中設(shè)置,(7)波特率的設(shè)置(參考手冊(cè)上的數(shù)值填寫)(注意波特率選擇是收發(fā)雙方達(dá)成的共識(shí),雙方波特率不同會(huì)造成無法通訊或亂碼,波特率的設(shè)置與系統(tǒng)的主時(shí)鐘有關(guān)所以在設(shè)置波特率寄存器時(shí)要查主時(shí)鐘頻率想對(duì)應(yīng)的表,手冊(cè)上是32M的數(shù)值,修改了系統(tǒng)主時(shí)鐘頻率后要相應(yīng)的修改波特率對(duì)應(yīng)下的值)(8)清UART0相關(guān)中斷。上述步驟不可省在經(jīng)典的8051單片機(jī)中,通常要設(shè)置波特率,其中有兩種方式波特率可變,具體數(shù)值由定時(shí)器來控制。在cc2530中,設(shè)置波特率不需要定時(shí)器參與,這一點(diǎn)和avr單片機(jī)
8、一樣。因此在進(jìn)行初始化的過程中利用U0CSR和U0GCR兩個(gè)寄存器來設(shè)置波特率。并設(shè)置串口具體位置,用p0做串口還是用p1,以及具體到每個(gè)位。這部分具體設(shè)置還沒弄清楚。另外還要設(shè)置通信方式為UART方式最后要設(shè)置允許接受,開總中斷允許和接收中斷允許。和adc不同的是,adc要選擇觸發(fā)源。TI CC2530基礎(chǔ)實(shí)驗(yàn)(串口編程USART0收發(fā)測(cè)試總結(jié)) 無論學(xué)習(xí)哪款MUC串口對(duì)于我們進(jìn)行實(shí)驗(yàn)調(diào)試都是非常方便實(shí)用的,可以把程序中涉及的某些中間量或者其他程序狀態(tài)信息打印出來顯示在電腦上進(jìn)行調(diào)試,許多MUC和PC機(jī)通信都是通過串口來進(jìn)行的。CC2530有兩個(gè)USB轉(zhuǎn)串口,分別是USART0和USART1
9、。USART0和USART1是串行通信接口,它們能夠分別運(yùn)行于異步UART模式或者同步SPI模式。兩個(gè)USART具體同樣的功能,可以設(shè)置在單獨(dú)的I/O引腳。查看CC2530 datasheet的I/O外設(shè)引腳映射72頁根據(jù)上面的外設(shè)I/O引腳映射可知:UART0對(duì)應(yīng)的外部設(shè)置IO引腳關(guān)系為:位置1:P0_2-RX P0_3-TX 位置2:P1_4-RX P1_5-TXUART1對(duì)應(yīng)的外部設(shè)置IO引腳關(guān)系為:位置1:P0_5-RX P0_4-TX 位置2:P1_7-RX P1_6-TXUSART模式的操作具體下列特點(diǎn):1、8位或者9位負(fù)載數(shù)據(jù)2、奇校驗(yàn)、偶校驗(yàn)或者無奇偶校驗(yàn)3、配置其實(shí)位和停止位
10、電平4、配置LSB(最低有效位)或MSB(最高有效位)首先傳輸5、獨(dú)立接收中斷6、獨(dú)立收發(fā)DMA觸發(fā)注:在本次實(shí)驗(yàn)中,使用的是UART0電路原理圖:CC2530寄存器: PERCFG:外設(shè)控制寄存器 P2DIR : 端口2方向和端口0外設(shè)優(yōu)先級(jí)控制 IEN0 :中斷使能0寄存器 IRCON2:中斷標(biāo)志控制寄存器 UxCSR:USARTx 控制和狀態(tài)寄存器 UxUCR:USARTx 串口控制寄存器 UxGCR:USARTx 通用控制寄存器 UxBUF: USARTx 接收/發(fā)送數(shù)據(jù)緩沖寄存器 UxBAUD:USARTx 波特率控制寄存器CC2530配置串口的一般步驟:1、配置串口的備用位置,是備
11、用位置1,還是備用位置2。配置寄存器PERCFG外設(shè)控制寄存器2、配置IO,使用外部設(shè)備功能。此處配置P0_2和P0_3用作串口UART03、配置端口的外設(shè)優(yōu)先級(jí)。此處配置P0外設(shè)優(yōu)先作為UART04、配置相應(yīng)串口的控制和狀態(tài)寄存器。此處配置UART0的工作寄存器5、配置串口工作的波特率。此處配置為波特率1152006、將對(duì)應(yīng)的串口接收/發(fā)送中斷標(biāo)志位清0,接收/發(fā)送一個(gè)字節(jié)都將產(chǎn)生一個(gè)中斷,在接收時(shí)需要開總中斷和使能接收中斷,以及運(yùn)行接收。程序:/* * 基礎(chǔ)實(shí)驗(yàn)只需要添加以下頭文件 */#include #define uint8 unsigned char /或typedef unsig
12、ned char uint;#define uint16 unsigned int char Rxdata50;uint8 RXTXflag = 1;char temp;uint8 datanumber = 0;/* * 函數(shù)描述:串口0初始化 * 115200,8位數(shù)據(jù)位,無校驗(yàn),1位停止位 */* * CC253O 32M系統(tǒng)時(shí)鐘波特率參數(shù)表 * *-* * 波特率 UxBAUD.BAUD_M UxBAUD.BAUD_M * * 2400 59 6 * * 4800 59 7 * * 9600 59 8 * * 14400 216 8 * * 19200 59 9 * * 28800 21
13、6 9 * * 38400 59 10 * * 57600 216 10 * * 76800 59 11 * * 115200 216 11 * * 23040 216 12 * */void UartInit(void) PERCFG = 0x00; /設(shè)置UART0的備用位置為P0口,即UART0的RX-P0_2, TX-P0_3 P0SEL = 0x3c; /設(shè)置P0_2,P0_3為外設(shè)功能 P2DIR &= 0xc0; /配置P0端口優(yōu)先作為UART0 /*設(shè)置USART0的方式*/ U0CSR |= 0x80; /SPI同步模式 /*設(shè)置USART0的波特率,115200*/ U0G
14、CR |= 11; U0BAUD |= 216; /*將UART0中斷標(biāo)志位清0*/ UTX0IF = 0; /清除UART0發(fā)送中斷標(biāo)志位 URX0IF = 0; /清除UART0接收中斷標(biāo)志位 /*開總中斷,以及使能串口0接收中斷*/ IEN0 |= 0x80; /開總中斷 IEN0 |= 0x04; /使能串口0接收中斷 /*運(yùn)行串口0接收*/ U0CSR |= 0x40;/* * 函數(shù)描述:串口0發(fā)送字符串函數(shù) */void UartSendString(char *Data, uint16 len) uint16 j; for (j = 0; j len; j+) U0DBUF =
15、*Data+; for (; 0 = UTX0IF ;); UTX0IF = 0; /* * 函數(shù)描述:32M系統(tǒng)時(shí)鐘下的毫秒延時(shí)函數(shù) */void Delay_ms(uint16 ms) uint16 i,j; for(i = 0; i ms; i+) for(j = 0;j 1774; j+); /* * 函數(shù)描述:串口0接收中斷服務(wù)程序 */#pragma vector = URX0_VECTOR_interrupt void UART0_ISR(void) URX0IF = 0; /清中斷標(biāo)志 temp = U0DBUF; /將串口接收緩沖的數(shù)據(jù)存放到temp中,temp是char類型,即8位數(shù)據(jù)位void main() CLKCONCMD &= 0x40; /設(shè)置系統(tǒng)時(shí)鐘源為32MHz晶振 for(; CLKCONSTA & 0x40;); /等待晶振穩(wěn)定 CLKCONCMD &= 0X47; /設(shè)置系統(tǒng)主時(shí)鐘頻率為32MHz UartInit(); UartSendString(send test.,sizeof(send test.); for (;) if (1 = RXTXflag) /串口接收狀態(tài) if (temp != 0) if (temp != #)&(datanumber50
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家長(zhǎng)檢查活動(dòng)方案
- 家庭教育讀書節(jié)活動(dòng)方案
- 寒假綜合活動(dòng)方案
- 室內(nèi)真人cs活動(dòng)方案
- 小學(xué)數(shù)學(xué)魔方活動(dòng)方案
- 壽司親子活動(dòng)方案
- 安吉古城活動(dòng)方案
- 小吃推選活動(dòng)方案
- 宿舍防火活動(dòng)方案
- 宗祠聚會(huì)活動(dòng)方案
- 安全生產(chǎn)企業(yè)培訓(xùn)課件
- 【MOOC】西方園林歷史與藝術(shù)-北京林業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 第四屆全國儀器儀表行業(yè)職業(yè)技能競(jìng)賽-無人機(jī)裝調(diào)檢修工(儀器儀表檢測(cè))理論考試題庫(含答案)
- 13J927-3 機(jī)械式停車庫設(shè)計(jì)圖冊(cè)
- 滅鼠行業(yè)營銷策略方案
- 心臟瓣膜病患者的護(hù)理
- 肥料代理合作協(xié)議書
- Unit2HealthylifestyleProjectDoahealthsurvey教學(xué)設(shè)計(jì)高中英語人教版選擇性
- 經(jīng)尿道前列腺電切術(shù)后膀胱沖洗的護(hù)理-課件
- 2024年中考地理模擬試題(共6套有答案)
- 江蘇省蘇州市2024-2025學(xué)年高一歷史下學(xué)期期末考試試題含解析
評(píng)論
0/150
提交評(píng)論