极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10461|回复: 0

已经无力吐槽了,跪求大神指点!si4432通信!!!

[复制链接]
发表于 2015-12-30 17:45:09 | 显示全部楼层 |阅读模式
先附上代码,很简单的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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 14:16 , Processed in 0.120768 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表