![]() |
發布時間: 2022-6-28 10:16
正文摘要:數碼管上可以正常顯示,串口助手接收數據有問題。找不到什么問題,請大佬們幫忙看看,謝謝! 單片機源程序如下: #include <reg51.h> #define BAUD   ... |
TL1 = 0xE8; TH1 = 0xFF; |
波特率設置錯了, 如果兩個單片機之間都是一樣錯誤的,是可以通訊的 但是和標準波特率不行 |
一版下載工具上都有基于晶振自動生成波特率配置代碼的工具,用那個,然后用HEX發送就收就可以看到了 |
我問板上的晶振是多大的?12M還是11.0592M?它倆可不是一樣的。它倆對串口可有老大關系了。應該是11.0592才對吧.這你可得看好。如果裝個12M的晶振。那串口就不會有正確的結果的。 |
TL1=256-SYSTEMCLOCK/12/32/BAUD; TH1=256-SYSTEMCLOCK/12/32/BAUD; 改成 TL1= 65536 - SYSTEMCLOCK/12/32/BAUD ; TH1= ( 65536-SYSTEMCLOCK/12/32/BAUD )>> 8 ; (沒有查過資料,可能是錯的) |
串口助手換成hex模式看看數據是什么樣子的。 |
接收 用hex模式 |
用HEX方式吧,你沒有處理過的數據是十六進制,而不是ASCII內碼 |
啤酒瓶子老大 發表于 2022-6-28 11:31 12MHz,11.0592MHz STC89C52RC單片機 |
1. 用以前調好的串口程序跑一下,看有沒有輸出; 2. 對比以前運行正常的代碼,檢查波特率及配置是否正確; |
板上的晶振是多大的? |