本帖最后由 展鹏abc123 于 2012-7-3 17:11 编辑
检查也没有错,反正是找不出来了,就是没有效果,,求救,是不是寄存器设置的问题,我想让其工作在915M
发送的主函数
void main()
{
uchar TxBuf[8]={0}; // 8字节, 如果需要更长的数据包,请正确设置
DDRB=0xB3;
CpuInit();
POWER_UP_RESET_CC1101();//上电复位
halRfWriteRfSettings();//配置CC1101的寄存器
halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8);//SPI连续写寄存器
TxBuf[1] = 1 ;
TxBuf[2] = 1 ;
halRfSendPacket(TxBuf,8); // 发送发送缓冲区数据
while(1)
{
TxBuf[1] = 0x01;//发送的数据
TxBuf[2] = 'y';//发送的数据
halRfSendPacket(TxBuf,8); // 发送发送缓冲区数据
TxBuf[1] = 0xff; //发送完后将TxBuf[1]设定成0xFF
TxBuf[2] = 0xff;
delay(2000);
}
}
接收的主程序
void main(void)
{
uchar i,j;
uchar leng =0;
uchar RxBuf[8]={0};// 8字节, 如果需要更长的数据包,请正确设置
DDRB=0xB3;
DDRC=0xff;
DDRD|=BIT(3)|BIT(4)|BIT(5)|BIT(6);
lcd_init();
CpuInit();
POWER_UP_RESET_CC1101();//上电复位
halRfWriteRfSettings();//配置CC1101的寄存器
halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8);//SPI连续写寄存器
while(1)
{
leng =8; // 预计接收8字节
setRxMode();//设置进入接收状态
if(halRfReceivePacket(RxBuf,&leng)) //接收数据
{
write_com(0x80);
if( RxBuf[1]==0x01)
{
i=RxBuf[1];
write_dat(0x30+i);
PORTD|=BIT(5);
}
if( RxBuf[2]=='y')
{
j=RxBuf[2];
write_dat(j+48);
}
}
//RxBuf[1] = 0xff;
//RxBuf[2] = 0xff;
}
} |