![]() |
發(fā)布時間: 2019-4-9 15:40
正文摘要:程序目的:輸入什么字符或數(shù)字返回顯示 主要問題:向單片機發(fā)送0時,返回80.麻煩能幫忙看下嗎? 單片機源程序如下: #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define ... |
飛云 發(fā)表于 2019-4-10 08:33 謝謝,謝謝問題解決了 ![]() |
lizzz 發(fā)表于 2019-4-9 21:20 你這里應該仍然是串口初始化問題,你這里的波特率設置4600,那串口調(diào)試助手那里也是設置為4600嗎?你的單片機型號是什么?我?guī)湍阈薷囊幌麓诔跏蓟绦颍阍僭囋嚢桑?/td> |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎勵! |
求指點呀,調(diào)了一下午加晚上了 頭疼 |
后來發(fā)現(xiàn)和波特率的設置有問題,硬件單片機的晶振是12MHZ的。 修改后傳一些數(shù)沒問題,但傳某些數(shù)如CC就會出現(xiàn)端口不停傳一些不知道的數(shù).求指點呀 代碼如下
|
你這里可能是串口初始化有問題 ,你看看用的是什么型號的單片機,然后在STC-ISP那個下載程序軟件里面可以找到對應型號的串口初始化程序,你修改一下應該就可以的了 |
等待大佬 |
不要沉呀![]() ![]() ![]() ![]() ![]() |
lizzz 發(fā)表于 2019-4-9 21:22 程序本身沒有什么問題,主要是因為晶振頻率不合適,導致波特率誤差太大,需要設置加倍。 void UartInit(void) //4800bps@12.000MHz { PCON |= 0x80; //使能波特率倍速位SMOD SCON = 0x50; //8位數(shù)據(jù),可變波特率 TMOD = 0x20; //設定定時器1為8位自動重裝方式 TL1 = 0xF3; //設定定時初值 TH1 = 0xF3; //設定定時器重裝值 TR1 = 1; //啟動定時器1 ET1 = 0; //禁止定時器1中斷 EA=1; //允許總中斷 ES=1; //允許串口中斷 } |
參與人數(shù) 1 | 黑幣 +10 | 收起 理由 |
---|---|---|
![]() | + 10 | 贊一個! |
Powered by 單片機教程網(wǎng)