|
|
先附上代码,很简单的SPI读写,先向SLAVE写数,然后用串口读出来。但读出来的数很神经,有时候是正确的有时候很奇怪。有时候重新上电又好了,有时候怎么弄都不行。。。有没有做过方面的大神解释一下啊啊啊啊啊!都快整疯了!!!!!
void setup() {
Serial.begin(9600);
SPI.begin();
delay(10);
init_SPI();
delay(10);
// initalize pins'status
pinMode(NIRQPin, INPUT);
pinMode(NSELPin, OUTPUT);
// pinMode(SDNPin, OUTPUT);
pinMode(INTPin, INPUT);
pinMode(LED1, OUTPUT);
ItStatus1 = SpiReadRegister(0x03, BIN); //read the Interrupt Status1 register
ItStatus2 = SpiReadRegister(0x04, BIN);
delay(100);
}
void loop() {
SpiWriteRegister(0x75, 0x13); //for frequency_band_select
SpiWriteRegister(0x76, 0x4B); //for Carrier_Frequency //for the nominal freq is set as 433 MHz
SpiWriteRegister(0x6D, 0x1F);
SpiWriteRegister(0x07, 0x08);
stateData = SpiReadRegister(0x6D, 1);
stateData = SpiReadRegister(0x75, 1);
stateData = SpiReadRegister(0x76, 1);
stateData = SpiReadRegister(0x07, 1);
}
下面是串口读的数
数行是寄存器地址,偶数行是寄存器存储的数据;
不知道是不是接触问题,都是用的杜邦线连接。还是外部电磁干扰,那也不至于读不出寄存器数吧。。然后就是时钟同步问题。
这个过程不知道是数据存入没存进去,还是已经存进去了读出来的时候出错!!!!!好郁闷啊!!!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|