[问题] 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
以下是目前测试的程式码,
http://imgur.com/jxEnDoK
http://imgur.com/gLrIwDC
请问各位板友,可能是哪边我没弄清楚,导致写错了呢?
谢谢!
作者: 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