[問題] SPI讀寫問題

作者: fengwing (liberty)   2017-01-09 00:09:04
各位板友好
我想利用MCU與RF晶片做溝通,
MCU為Atmel SAMD20J18、RF晶片為Semtech SX1276,
此RF晶片僅能利用SPI對其暫存器做讀寫,
我是使用SINGLE access mode,
也就是一次會傳送一個byte的地址+一個byte的資料,
地址的MSB是1則做寫入,0則是讀取,
我修改Atmel ASF Manual所提供的SPI Example Code,
在程式一開始,要寫(data 0x00)到暫存器(addr 0x01),
因為是寫入,所以地址改寫成 0x01|0x80,就像SPI_W(0x81,0x00)
我不知道到底有沒有寫出去,於是用了一個笨方法XD
寫一個無窮迴圈,然後用示波器查看MOSI的腳位,
確實可以看到0x81 0x00從MOSI送出,
請問板友,這樣就是代表有1byte的資料(0x00)寫到暫存器嗎?
然而當我想把暫存器中的值讀出來,卻出了問題,
我寫了一個SPI_R(0x01),要讀取暫存器的值,但卻收到0x09
以下是目前測試的程式碼,


請問各位板友,可能是哪邊我沒弄清楚,導致寫錯了呢?
謝謝!
作者: chuegou (chuegou)   2017-01-09 08:44:00
我看不出來讀出來你放在那裡
作者: fengwing (liberty)   2017-01-09 10:40:00
你好!我放在副程式.因為想說用示波器看.就沒傳回到main還是說這樣會有問題呢? 謝謝!
作者: chuegou (chuegou)   2017-01-09 18:55:00
我想看看讀的示波器訊號 有clock和select更好
作者: fengwing (liberty)   2017-01-10 00:35:00
感謝你!目前暫時解決.換一個函數就可以了.真奇怪qq我也會再發封信給您!
作者: asdrtyjkl925 (阿斯拉)   2017-01-13 21:42:00
你說的換函數是指把Read_REG和Write_REG給換掉嗎

Links booklink

Contact Us: admin [ a t ] ucptt.com