|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
M162 UART問題 |
| 作者:lxyzhy 欄目:單片機(jī) |
各位DX,我用M162的串口通訊,用AVR STUDIO仿真調(diào)試時(shí)出了點(diǎn)問題。 我的UART初始化程序如下: UCSR0A = 0x00; //Disable While Setting Baud Rate UCSR0B = 0x00; //Disable While Setting Baud Rate UCSR0C = 0x00; //Disable While Setting Baud Rate UBRR0H = 0x00; UBRR0L =0x23; //Set Baud Rate UCSR0A = 0x00; // UCSR0B = 0x18; // UCSR0C = (1<<URSEL0)|(1<<UCSZ01)|(1<<UCSZ00); 問題是: 不知為什么仿真調(diào)試時(shí)單步執(zhí)行能看到上面各個(gè)寄存器在語(yǔ)名執(zhí)行后的變化。 但最后一句執(zhí)行時(shí)UCSR0C寄存器還是0X00,沒有變化。 是我的初始化步驟不對(duì)嗎,還是其他問題? 請(qǐng)指教,謝謝! |
| 2樓: | >>參與討論 |
| 作者: zsmbj 于 2005/11/3 15:38:00 發(fā)布:
不會(huì)吧!UCSRC初始化應(yīng)該為0x86. 初始化時(shí)設(shè)置UCSRC =0 那句是錯(cuò)的了。設(shè)置UCSRC時(shí)必須設(shè)置URSEL位才行。 |
|
| 3樓: | >>參與討論 |
| 作者: lxyzhy 于 2005/11/3 15:44:00 發(fā)布:
最后一句是0X86啊 謝謝ZSMBJ兄 我的最后一句寫UCSR0C是0X86啊 UCSR0C = (1<<URSEL0)|(1<<UCSZ01)|(1<<UCSZ00); 就是最后一句寫了后寄存器不變化還為0X00 |
|
| 4樓: | >>參與討論 |
| 作者: zsmbj 于 2005/11/3 16:48:00 發(fā)布:
是不是看錯(cuò)地址了? 我是說你的程序開始并沒有設(shè)置UCSRC寄存器,所以初始化值0X86不會(huì)變化。如何會(huì)有0X00出現(xiàn)呢? |
|
| 5樓: | >>參與討論 |
| 作者: lxyzhy 于 2005/11/4 8:44:00 發(fā)布:
是這樣的 我的最后一句寫的是UCSR0C= (1<<URSEL0)|(1<<UCSZ01)|(1<<UCSZ00); 也就是UCSR0C=0X86,但仿真時(shí)執(zhí)行這一句后沒有看到UCSR0C寄存器的變化 還是顯示的0X00 不知何原因? 再次謝謝! |
|
| 6樓: | >>參與討論 |
| 作者: zsmbj 于 2005/11/4 8:56:00 發(fā)布:
干嗎老和這一個(gè)寄存器叫勁呢? 你的設(shè)置都是對(duì)的了。UBRRH和UCSRC共用一個(gè)寄存器。所以你看到的值應(yīng)該是UBRRH了。 |
|
| 7樓: | >>參與討論 |
| 作者: 我為你狂 于 2005/11/6 21:14:00 發(fā)布:
UBRRH和UCSRC 最好不要全依賴仿真的,燒個(gè)片子試試UBRRH和UCSRC是共用同一個(gè)地址。寫UCSRC是要使最高位置1。 |
|
| 8樓: | >>參與討論 |
| 作者: hanyafeng 于 2005/11/11 12:20:00 發(fā)布:
M162的特殊的熔斷絲設(shè)置 用JTAG仿真器或燒結(jié)器打開熔斷絲設(shè)置屬性葉,可以看到有一項(xiàng)默認(rèn)設(shè)置被選“OSC的頻率被8分頻”,去掉此項(xiàng)即可。當(dāng)然,為了進(jìn)一步加深印象可以看一下DATASHEET中波特率生成示意圖--其中在OSC后面有一個(gè)計(jì)數(shù)器然后再當(dāng)作主頻進(jìn)入各個(gè)工作單元。 |
|
| 9樓: | >>參與討論 |
| 作者: xinjie1023 于 2005/12/4 16:34:00 發(fā)布:
干嗎老和這一個(gè)寄存器叫勁呢? 應(yīng)該是只要設(shè)置URSEL為一,那么讀出得值應(yīng)該是UCSRC吧 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |