![]() |
lkc8210 發表于 2021-7-6 17:34 哈哈,沒注意到你中斷里面嵌套的函數,不過問題仍然是同一個性質的,你確定串口只發送了一個字節,或者階段時間內的最后一個字節是你想要的? |
robinsonlin 發表于 2021-7-6 17:26 2. P0口會在收到串口中斷(39行)后更新(26行) |
Gideontro 發表于 2021-7-6 16:00 不知道該如何回復你了。 我把我能夠看到的錯誤先列出來,你自己慢慢體會吧。 1. 你這個串口通訊, 通訊源在哪里? 波特率是多少? 9600,還是19200? 2. 你的主程序中,P0口賦值一次后,就循環等待了, 你確定上電的瞬間就能接受到數據? 你這是通過按鍵在跟電子比快么? |
請看圖片![]() |
可以檢查晶振電容是否是大于33pf |
串口用哪個定時器做波特率,9成是定時器沒有處理好,導致溢出。 表象就是偶爾又可以,大部分時間不工作。 |
程序沒問題的,因為有時候能運行成功,但是斷電再接就可能不運行程序 |
像這種初學者的實驗 盡量每個單片機加一個可視的東西 最常見的是加一個閃爍燈 起碼可以判斷單片機有沒有正常運轉 本來就是看不到的東西再猜來猜去憑白給自己填加障礙 |
1.晶振離單片機盡量近一下。 2.建議裝上指示燈進行觀察。 3.程序上傳看一下有無問題。 |
晶振太遠了吧 |
感覺是虛接 |
復位腳對地加個電容試試 |
是兩個單片機串口通信的程序 |