| 
 
| 本帖最后由 victor3l 于 2012-9-1 22:23 编辑 
 我在调试一个nRF905的模块,我想首先建立通讯,我把写到寄存器中的数据,在度胡来。他又十个字节的数据,在写的时候是先写一个写寄存器的命令,然后把依次10个字节写进去。此时我想把刚才写的数据在读回来,看看对不对就能判断他通讯是否正常。问题是我写一个读的命令后,是要把10个字节都读出来,还是制度一个啊?为什么我的读不到了?另外一个问题:还有什么方法能够识别他的通信已经正常了?
 下面是spi的读写
 void WriteNRF(uchar dat)
 {
 uchar i = 0;
 
 // csn = 0;
 for(i = 0; i < 8; i++)
 {
 mosi = (bit)(dat & 0x80);
 sclk = 1;
 _nop_();
 _nop_();
 sclk = 0;
 _nop_();
 _nop_();
 dat <<= 1;
 }
 // csn = 1;//是否spi
 }
 uchar ReadNRF(void)
 {
 uchar temp = 0;
 uchar i;
 
 // csn = 0;
 for(i = 0; i < 8; i++)
 {
 temp <<= 1;
 sclk = 1;
 _nop_();
 _nop_();
 temp |= miso;
 sclk = 0;
 _nop_();
 _nop_();
 }
 
 // csn = 1;
 return temp;
 }
 
 这个应该没什么问题吧?
 | 
 |