主题中讨论的其他器件:CC1101、 CC1200、 CC1190
你好。 我编写了下面的代码段、以配置和接收三个数据包、每个数据包包含大约34字节、
void BVoidTranInit(vo){
unsigned char 选项卡[]={0x00、0x60、0x00、0x00、0x00、0x00、0x00、0x00};
CC1100_CSn=1;
Wait ();
CC1100_CSn=0;
等待();
CC1100_CSn=1;
WAIT ();
//重置
CC1100_CSn=0;
WAIT ();
CC1100_CSn=1;
CC1100_CSn=0;
while (CC1100_MISO =1);
CC1100_SPIStrobe (CCxxx0_SRES);
CC1100_CSn=1;
//重置结束
}
//主源文件
#define RX_Buffer_size 102
unsigned char RxBuffer[RX_Buffer_size=];
void main (void){
init_micro();
init_spi();
BidVoTranInit();
while
CC1100_ReadIxFl
(0xCxF_ReadStatus)(0xCxCx100_ReadF)(0xCxCxCx100_ReadF)(0xCxI1_ReadF)(0xCxI1_ReadF)(0xCxI1_ReadF)(0xCxI1_ReadF)(0xCxI1_ReadF)(0xCxI1_
delay_ms (1);
int p = 0;
while (p <= 100){
if (RxBuffer[p]=0xff){
P++;
}否则{
if (((RxBuffer[p]=0xc8 & RxBuffer[p+1]=0x8e & RxBuffer[p+2]=0x7f & RxBuffer[p+3]=0x77)|(RxBuffer[p]=0x5c & RxBuffer[p+1]=0x88 & RxBuffer=0x7+P=0x7+=0x7+eBuffer[=0x7]=0x7+P]=0x7
RA0 = 1;
_DELAY_ms (30);
RA0 = 0;
__DELAY_ms (50);
}
P++;
}
}
CC1100_SPIWriteReg (CCxxx0_MCSM1、0x20);
CC1100_SPIWriteReg (CCxxx0_MCSM0、0x18);
CC1100_SPIStrobe (CCxxx0_sidle);
CC1100_SPIStrobe (CCxxx0_SFRX);
CC1100_SPIStrobe (CCxxx0_SRX);
CC1100_SPIWriteReg (CCxxx0_MCSM0、0x28);
CC1100_SPIStrobe (CCxxx0_SRX);
}else if (CC1100_SPIReadStatus (0x3B)& 0x80){
CC1100_SPIStrobe (CCxxx0_Sidle);
CC1100_SPIStrobe (CCxxx0_SFRX);
}
}
}
}}
USIGN CC1101。 为了传输数据、我使用 CC1200评估板、其配置如下。
遗憾的是、我在接收数据时遇到了几个问题。 首先、接收器无法检测到同步字(它仅在接收器侧与0xff 同步字搭配使用、在发送器侧与0xAA 搭配使用)。 此外、我无法可靠地接收数据;例如、对于10个测试(发送)、大约一半的测试是正确的、它们接收正确的数据。
我应该注意的是、GPIO 和 SPI 工作正常(通过示波器读取)。 如果你能帮助我解决这些问题,我将不胜感激。
此致。