|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我這樣讀寫片外UART的寄存器對嗎? |
| 作者:古劍和酒 欄目:DSP技術(shù) |
我定義了#define LCR (*(volatile unsigned CHAR*)0x80000003) 然后用LCR=0x80;賦值 然后定義個 unsigned CHAR x; x=LCR; 這樣讀寫沒問題吧 我想在ccs里看一下x的值卻怎么也不對啊 |
| 2樓: | >>參與討論 |
| 作者: iversonma 于 2006/8/22 15:03:00 發(fā)布:
re 呵呵,估計你用的是752擴(kuò)uart的吧~ 最好還是直接在數(shù)據(jù)位上面量電壓 比如: for(i=0;i<256;i++) { *((Uint32 *)0xB0030000) = 0x1000; } 這樣就可以看到你到底把數(shù)寫進(jìn)去了沒有 給你一個完整的定義文件: #define DM643_UART_BASEADDR 0x9c00 #define DM643_UART_RBR 0x00 // Read #define DM643_UART_THR 0x00 // Write #define DM643_UART_IER 0x01 #define DM643_UART_IIR 0x02 // Read #define DM643_UART_FCR 0x02 // Write #define DM643_UART_LCR 0x03 #define DM643_UART_MCR 0x04 #define DM643_UART_LSR 0x05 #define DM643_UART_SCR 0x07 #define DM643_UART_DLL 0x08 #define DM643_UART_DLH 0x09 #define DM643_UART_EFR 0x0A #define DM643_UART_XON1 0x0C #define DM643_UART_XON2 0x0D #define DM643_UART_XOFF1 0x0E #define DM643_UART_XOFF2 0x0F #define DM643_UART_TCR 0x16 #define DM643_UART_TLR 0x17 #define DM643_UART_FIFORDY 0x1f |
|
| 3樓: | >>參與討論 |
| 作者: 古劍和酒 于 2006/8/22 17:34:00 發(fā)布:
3ks 多謝指教,我用的是2550 我在片內(nèi)地址實(shí)驗(yàn)了一下,發(fā)現(xiàn)這樣寫 #define LCR (*(volatile unsigned CHAR*)0x80000003) LCR=0x80; 寫不進(jìn)去 還是得用 *((int *)abc) =xxx 這樣才行,不知道怎么回事 |
|
| 4樓: | >>參與討論 |
| 作者: lltmhy2005 于 2006/8/22 21:23:00 發(fā)布:
我這樣讀寫片外UART的寄存器對嗎? 可以這樣定義: #define LCR (volatile unsigned int *)0x80000003 然后*(LCR)=VALUE進(jìn)行讀 或者VALUE=*(LCR)進(jìn)行寫 |
|
| 5樓: | >>參與討論 |
| 作者: 古劍和酒 于 2006/8/23 9:13:00 發(fā)布:
。 BASE=(Uint8 *)0x80000000; BASE[2]=0x03; BASE[2]=0x01; BASE[3]=0x80; 我現(xiàn)在改成這樣偏移量尋址了 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |