|
|||||||||||
| 技術(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 |
同一個(gè)程序波特率為什么不一樣呢 |
| 作者:happystar 欄目:單片機(jī) |
我用keil uversion3調(diào)試C8051F310開(kāi)發(fā)板,在沒(méi)有連接硬件的時(shí)候用keil全速執(zhí)行波特率是9600,但是當(dāng)連上硬件做硬件單步執(zhí)行的時(shí)候波特率就成了4萬(wàn)多。怎么回事啊? 這是我的310初始化代碼,波特率想要為9600。大家?guī)兔纯窗。ㄌ芈收{(diào)不出來(lái),通信可就沒(méi)法子做拉,謝謝 void Port_IO_Init(){ P0SKIP=0x0C; XBR0=0x03; XBR1=0x40; P0MDIN &=0xf3; } void Oscillator_Init(){ int i=0; OSCXCN=0x67; for(i=0;i<3000;i++); // Wait 1ms for initialization while((OSCXCN & 0x80)==0);//等待外部晶振穩(wěn)定運(yùn)行 RSTSRC=0x04; CLKSEL =0x01;//選外部時(shí)鐘 OSCICN =0x00;//關(guān)內(nèi)部時(shí)鐘 } void uart_init(){ SCON0=0x10; //采用方式1,8位異步收發(fā)。波特率9600 EA=1; ES0=1; ET0=1; IP=0x1d; } void Timer_Init(){ TMOD=0x21;//T1波特率,T0定時(shí) CKCON=0x00; //12分頻 TH1=0xd0; TR1=1; } void Init_Device(){ PCA0MD&=0xbf;//關(guān)看門(mén)狗 Port_IO_Init(); Oscillator_Init(); Timer_Init(); uart_init(); } |
| 2樓: | >>參與討論 |
| 作者: 567 于 2006/10/16 20:59:00 發(fā)布:
請(qǐng)查看時(shí)鐘頻率 |
|
| 3樓: | >>參與討論 |
| 作者: happystar 于 2006/10/16 21:12:00 發(fā)布:
re 567 謝謝567。 我把內(nèi)部時(shí)鐘關(guān)了,用的是外部時(shí)鐘11。0592M,在keil里也調(diào)試的是11。0592 ,可是連上開(kāi)發(fā)板在keil就是30多萬(wàn)的波特率(periphrial/serial 0下查看的。)、但是選擇模擬調(diào)試的時(shí)候(因?yàn)橛袀(gè)等待外部時(shí)鐘準(zhǔn)備好位,所以把這個(gè)等待語(yǔ)句去掉)就是9600。 |
|
| 4樓: | >>參與討論 |
| 作者: zusen 于 2006/10/16 22:57:00 發(fā)布:
你要看看你的MCU多少個(gè)時(shí)鐘周期的 |
|
| 5樓: | >>參與討論 |
| 作者: conwh 于 2006/10/16 22:57:00 發(fā)布:
用調(diào)試口測(cè)試,建立測(cè)試程序.以后的事情你就知道怎么做了 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |