2011-07-16 57 views
0

一個問題我有PIC18F452和UART問題 我用最簡單的代碼,這樣的:與UART和PIC 18F452

UART1_Init(9600);    // Initialize UART module at 9600 bps 
Delay_ms(100);     // Wait for UART module to stabilize 

之間永遠while循環我有這樣的代碼

UART1_Write_Text("HELLO2"); 
    Delay_ms(1000); 

也我在我的硬件液晶顯示模塊它工作得很好,但我收到的數據在PC 是這樣的廢品

???m 

我已檢查所有連接Sothand時間沒有錯,我也改變了MAX232集成電路,但沒有運氣?! 我的硬件就是這樣 enter image description here

finall我所有的連接都OK(極性和其他每一件事?) 編輯:我使用MIKROC作爲編譯器

+0

開始只發送像0x55這樣的單個字符(字節),並告訴您在PC上接收到的內容。 –

回答

2

看起來像波特率錯誤。你是否檢查過你的振盪器設置是否會導致預期的頻率?您正在使用的串行庫是否需要某個時鐘頻率,並且您確定您正在以該頻率運行,或者它是否在一組頻率上運行,並且您已正確告知串行庫您正在使用的是什麼頻率?另外,將接收到的字節看作是十進制或十六進制數字而不僅僅是ASCII是很有用的。

+0

好吧,我會嘗試這與圖片16f877a自18f452有它自己的內部和外部時鐘使用設置! ! (這與mikroc非常混淆!) –

+0

好的,我發現問題最終它與振盪器有關,如你所說:D –

0

怎麼樣的起始位,數據位的數量,奇偶校驗和停止位?兩端都一樣嗎?

+0

是的都一樣! –

0

它發生在你連接鬆動時,即從最大232到最大232到圖片&從最大232到PC。 嘗試檢查傳輸引腳或usr示波器上的波動以查看Hello World字母的ASCII值。