本帖最后由 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;
}
这个应该没什么问题吧? |