本帖最后由 fzhlpp 于 2019-7-10 21:30 编辑
我又来了,还是关于CC2500,这次我带来了新的问题。首先我汇报一下已经学会的东西,CC2500中文资料我是每次打开电脑后必须先打开的一个文件,断断续续的也有段日子了,可惜这份资料我几乎是啥也没看懂,是真看不懂,但是我现在知道用按键改变芯片内部寄存器的值来改动接收和发射的地址了,发射的地址和接收地址一样就可以接收数据,否则不行,但是两个板子靠的近了有时地址在隔壁也可以顺利接收不知道是什么问题,看来还是没真懂这个地址设置。还有一个就是频道设置也会了,也是可以通过按键改变两个板子的寄存器做到的: CC2500_WriteReg(CCxxx0_CHANNR,CHANNR_number);学到的这些都是看人家的代码慢慢分析出来的,那份中文资料文字都简单,但是它表达啥意思俺是一概不知,现在问题就是两个板子距离太近,10米都不到就收不灵了,有时丢数据很厉害,我想试试加大发射功率或者降低数据速率,但是我拿到的人家的代码好像没这个功能,就一直翻看那个中文资料,我是越看越迷糊,看了几天了就是找不到怎么样才能加大发射功率,也不知道怎么改变速率,有大师愿意指点一下吗,万分感激。。。
void CC2500_Init(void)
{
CSN = 1;
delay_ms(1);
CSN = 0;
delay_ms(1);
CSN = 1;
delay_ms(1);
CSN = 0;
SPI_Write(CCxxx0_SRES); //写入复位命令
CSN = 1;
CC2500_WriteReg(CCxxx0_FSCTRL1, CC2500_Config.FSCTRL1);
CC2500_WriteReg(CCxxx0_FSCTRL0, CC2500_Config.FSCTRL0);
CC2500_WriteReg(CCxxx0_FREQ2, CC2500_Config.FREQ2);
CC2500_WriteReg(CCxxx0_FREQ1, CC2500_Config.FREQ1);
CC2500_WriteReg(CCxxx0_FREQ0, CC2500_Config.FREQ0);
CC2500_WriteReg(CCxxx0_MDMCFG4, CC2500_Config.MDMCFG4);
CC2500_WriteReg(CCxxx0_MDMCFG3, CC2500_Config.MDMCFG3);
CC2500_WriteReg(CCxxx0_MDMCFG2, CC2500_Config.MDMCFG2);
CC2500_WriteReg(CCxxx0_MDMCFG1, CC2500_Config.MDMCFG1);
CC2500_WriteReg(CCxxx0_MDMCFG0, CC2500_Config.MDMCFG0);
CC2500_WriteReg(CCxxx0_CHANNR, CC2500_Config.CHANNR);
CC2500_WriteReg(CCxxx0_DEVIATN, CC2500_Config.DEVIATN);
CC2500_WriteReg(CCxxx0_FREND1, CC2500_Config.FREND1);
CC2500_WriteReg(CCxxx0_FREND0, CC2500_Config.FREND0);
CC2500_WriteReg(CCxxx0_MCSM0 , CC2500_Config.MCSM0 );
CC2500_WriteReg(CCxxx0_FOCCFG, CC2500_Config.FOCCFG);
CC2500_WriteReg(CCxxx0_BSCFG, CC2500_Config.BSCFG);
CC2500_WriteReg(CCxxx0_AGCCTRL2, CC2500_Config.AGCCTRL2);
CC2500_WriteReg(CCxxx0_AGCCTRL1, CC2500_Config.AGCCTRL1);
CC2500_WriteReg(CCxxx0_AGCCTRL0, CC2500_Config.AGCCTRL0);
CC2500_WriteReg(CCxxx0_FSCAL3, CC2500_Config.FSCAL3);
CC2500_WriteReg(CCxxx0_FSCAL2, CC2500_Config.FSCAL2);
CC2500_WriteReg(CCxxx0_FSCAL1, CC2500_Config.FSCAL1);
CC2500_WriteReg(CCxxx0_FSCAL0, CC2500_Config.FSCAL0);
CC2500_WriteReg(CCxxx0_FSTEST, CC2500_Config.FSTEST);
CC2500_WriteReg(CCxxx0_TEST2, CC2500_Config.TEST2);
CC2500_WriteReg(CCxxx0_TEST1, CC2500_Config.TEST1);
CC2500_WriteReg(CCxxx0_TEST0, CC2500_Config.TEST0);
CC2500_WriteReg(CCxxx0_IOCFG2, CC2500_Config.IOCFG2);
CC2500_WriteReg(CCxxx0_IOCFG0, CC2500_Config.IOCFG0);
CC2500_WriteReg(CCxxx0_PKTCTRL1, CC2500_Config.PKTCTRL1);
CC2500_WriteReg(CCxxx0_PKTCTRL0, CC2500_Config.PKTCTRL0);
CC2500_WriteReg(CCxxx0_ADDR, CC2500_Config.ADDR);
CC2500_WriteReg(CCxxx0_PKTLEN, CC2500_Config.PKTLEN);
//CC2500_WriteBurstReg(CCxxx0_PATABLE, PaTabel, 8);
////CC2500_Command(CCxxx0_SFRX);// 先进读取模式
//CC2500_Command(CCxxx0_SFTX); // 先进发射模式
CC2500_Command(CCxxx0_SIDLE); // 先进空闲模式
}