熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2018-10-23 17:37
正文摘要:為什么調(diào)用printf在這個(gè)板子上輸出中文會(huì)出現(xiàn)亂碼,我拿不同的板子試了基本一樣的代碼就沒亂碼,板子應(yīng)該沒有問題,請(qǐng)賜教 單片機(jī)源碼如下: #include<STC15F2K60S2.H> #include <stdio.h> #defin ... |
霍禮林 發(fā)表于 2018-10-23 20:57 12M晶振就要用12M晶振計(jì)算,否則誤差太大了,自然容易出錯(cuò): void UartInit(void) //9600bps@12.000MHz { SCON = 0x50; //8位數(shù)據(jù),可變波特率 AUXR |= 0x01; //串口1選擇定時(shí)器2為波特率發(fā)生器 AUXR |= 0x04; //定時(shí)器2時(shí)鐘為Fosc,即1T T2L = 0xC7; //設(shè)定定時(shí)初值 T2H = 0xFE; //設(shè)定定時(shí)初值 AUXR |= 0x10; //啟動(dòng)定時(shí)器2 } 這樣與PC機(jī)串口通訊會(huì)失步。11.0592M計(jì)算的9600波特率誤差為0,而12M計(jì)算的誤差為0.16,所以還是建議用11.0592的晶振。 如果只是兩個(gè)單片機(jī)之間串口通訊,那么晶振與波特率都無所謂,只要兩邊完全相同就可以了。 |
cjm82 發(fā)表于 2018-10-23 20:11 兩個(gè)板子都是焊接的都是12M的晶振 |
Powered by 單片機(jī)教程網(wǎng)