![]() |
發布時間: 2019-3-5 22:39
正文摘要:目標:兩塊完全相同的C51單片機使用SPI協議進行通信。電腦A通過串口助手發送字符至單片機A的SBUF,然后單片機A通過SPI協議發送至單片機B的SBUF,并顯示在電腦B的串口助手上。問題:SPI協議無法實現。 代碼如下: # ... |
應該是主從機的協議沒有設置好 |
這個比較復雜: 1.從硬件講傳輸距離是不是太遠, 2.你B單片機接收程序是否正常, 3.B單片機是否能給電腦B發送, 4.你就一個程序,無法判斷,應該兩個系統程序,單片機A程序,單片機B程序。 |
Benjia 發表于 2019-3-6 10:49 用邏輯分析儀抓一下SPI時序看一下。 |
問題出在SPI上,問問大家根據下面的時序圖,SPI配置代碼有問題嗎? |
xuyaqi 發表于 2019-3-6 09:20 恩恩,是這樣的。 確實是學習SPI的項目 |
xuyaqi 發表于 2019-3-6 09:05 電腦A通過串口助手發送字符至單片機A的SBUF正常 單片機A通過SPI協議發送至單片機B的SBUF失敗 問題應該處在SPI的配置上面,但是網上也沒有合適的解決方案 |
笨笨兔 發表于 2019-3-6 08:20 他的意思,單片機A通過SPI協議,發送至單片機B的SPI接收,然后轉到本單片機B串口SBUF,向電腦B的串口助手發送。估計是學習SPI的實驗項目。 |
你這實驗環節很多,任何一個環節出錯就會實驗失敗,所以得一各一個環節搞,先看電腦A通過串口助手發送字符至單片機A的SBUF正常嗎,再看單片機A通過SPI協議發送至單片機B的SBUF正常嗎,最后才是顯示在電腦B的串口助手上正常嗎,不是光看程序能解決的。 |
肯定是你的程序有不合適的地方,分部分來調試吧。 有點不明白:單片機A通過SPI協議,發送至單片機B的SBUF,這個是怎么回事。 |