⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc1100_rx.lst

📁 51控制CC1100无线收发IC接收数据程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 203          void RESET_CC1100(void) 
 204          {
 205   1              CSN = 0; 
 206   1              while (GDO1); 
 207   1              SpiTxRxByte(CCxxx0_SRES);               //写入复位命令
 208   1              while (GDO1); 
 209   1              CSN = 1; 
 210   1      }
 211          
 212          //*****************************************************************************************
 213          //函数名:void POWER_UP_RESET_CC1100(void) 
 214          //输入:无
 215          //输出:无
 216          //功能描述:上电复位CC1100
 217          //*****************************************************************************************
 218          void POWER_UP_RESET_CC1100(void) 
 219          {
 220   1              CSN = 1; 
 221   1              halWait(1); 
 222   1              CSN = 0; 
 223   1              halWait(1); 
 224   1              CSN = 1; 
 225   1              halWait(41); 
 226   1              RESET_CC1100();                 //复位CC1100
 227   1      }
 228          
 229          //*****************************************************************************************
 230          //函数名:void halSpiWriteReg(INT8U addr, INT8U value)
 231          //输入:地址和配置字
 232          //输出:无
 233          //功能描述:SPI写寄存器
 234          //*****************************************************************************************
 235          void halSpiWriteReg(INT8U addr, INT8U value) 
 236          {
 237   1          CSN = 0;
 238   1          while (GDO1);
 239   1          SpiTxRxByte(addr);          //写地址
 240   1          SpiTxRxByte(value);         //写入配置
C51 COMPILER V7.06   CC1100_RX                                                             04/09/2006 13:44:48 PAGE 5   

 241   1          CSN = 1;
 242   1      }
 243          
 244          //*****************************************************************************************
 245          //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
 246          //输入:地址,写入缓冲区,写入个数
 247          //输出:无
 248          //功能描述:SPI连续写配置寄存器
 249          //*****************************************************************************************
 250          void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 251          {
 252   1          INT8U i, temp;
 253   1              temp = addr | WRITE_BURST;
 254   1          CSN = 0;
 255   1          while (GDO1);
 256   1          SpiTxRxByte(temp);
 257   1          for (i = 0; i < count; i++)
 258   1              {
 259   2              SpiTxRxByte(buffer[i]);
 260   2          }
 261   1          CSN = 1;
 262   1      }
 263          
 264          //*****************************************************************************************
 265          //函数名:void halSpiStrobe(INT8U strobe)
 266          //输入:命令
 267          //输出:无
 268          //功能描述:SPI写命令
 269          //*****************************************************************************************
 270          void halSpiStrobe(INT8U strobe) 
 271          {
 272   1          CSN = 0;
 273   1          while (GDO1);
 274   1          SpiTxRxByte(strobe);                //写入命令
 275   1          CSN = 1;
 276   1      }
 277          
 278          
 279          
 280          
 281          
 282          //*****************************************************************************************
 283          //函数名:INT8U halSpiReadReg(INT8U addr)
 284          //输入:地址
 285          //输出:该寄存器的配置字
 286          //功能描述:SPI读寄存器
 287          //*****************************************************************************************
 288          INT8U halSpiReadReg(INT8U addr) 
 289          {
 290   1              INT8U temp, value;
 291   1          temp = addr|READ_SINGLE;//读寄存器命令
 292   1              CSN = 0;
 293   1              while (GDO1);
 294   1              SpiTxRxByte(temp);
 295   1              value = SpiTxRxByte(0);
 296   1              CSN = 1;
 297   1              return value;
 298   1      }
 299          
 300          
 301          //*****************************************************************************************
 302          //函数名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
C51 COMPILER V7.06   CC1100_RX                                                             04/09/2006 13:44:48 PAGE 6   

 303          //输入:地址,读出数据后暂存的缓冲区,读出配置个数
 304          //输出:无
 305          //功能描述:SPI连续写配置寄存器
 306          //*****************************************************************************************
 307          void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 308          {
 309   1          INT8U i,temp;
 310   1              temp = addr | READ_BURST;               //写入要读的配置寄存器地址和读命令
 311   1          CSN = 0;
 312   1          while (GDO1);
 313   1              SpiTxRxByte(temp);   
 314   1          for (i = 0; i < count; i++) 
 315   1              {
 316   2              buffer[i] = SpiTxRxByte(0);
 317   2          }
 318   1          CSN = 1;
 319   1      }
 320          
 321          
 322          //*****************************************************************************************
 323          //函数名:INT8U halSpiReadReg(INT8U addr)
 324          //输入:地址
 325          //输出:该状态寄存器当前值
 326          //功能描述:SPI读状态寄存器
 327          //*****************************************************************************************
 328          INT8U halSpiReadStatus(INT8U addr) 
 329          {
 330   1          INT8U value,temp;
 331   1              temp = addr | READ_BURST;               //写入要读的状态寄存器的地址同时写入读命令
 332   1          CSN = 0;
 333   1          while (GDO1);
 334   1          SpiTxRxByte(temp);
 335   1              value = SpiTxRxByte(0);
 336   1              CSN = 1;
 337   1              return value;
 338   1      }
 339          
 340          
 341          //*****************************************************************************************
 342          //函数名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
 343          //输入:无
 344          //输出:无
 345          //功能描述:配置CC1100的寄存器
 346          //*****************************************************************************************
 347          void halRfWriteRfSettings(void) 
 348          {
 349   1              halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL2);//自已加的
 350   1          // Write register settings
 351   1          halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);
 352   1          halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL0);
 353   1          halSpiWriteReg(CCxxx0_FREQ2,    rfSettings.FREQ2);
 354   1          halSpiWriteReg(CCxxx0_FREQ1,    rfSettings.FREQ1);
 355   1          halSpiWriteReg(CCxxx0_FREQ0,    rfSettings.FREQ0);
 356   1          halSpiWriteReg(CCxxx0_MDMCFG4,  rfSettings.MDMCFG4);
 357   1          halSpiWriteReg(CCxxx0_MDMCFG3,  rfSettings.MDMCFG3);
 358   1          halSpiWriteReg(CCxxx0_MDMCFG2,  rfSettings.MDMCFG2);
 359   1          halSpiWriteReg(CCxxx0_MDMCFG1,  rfSettings.MDMCFG1);
 360   1          halSpiWriteReg(CCxxx0_MDMCFG0,  rfSettings.MDMCFG0);
 361   1          halSpiWriteReg(CCxxx0_CHANNR,   rfSettings.CHANNR);
 362   1          halSpiWriteReg(CCxxx0_DEVIATN,  rfSettings.DEVIATN);
 363   1          halSpiWriteReg(CCxxx0_FREND1,   rfSettings.FREND1);
 364   1          halSpiWriteReg(CCxxx0_FREND0,   rfSettings.FREND0);
C51 COMPILER V7.06   CC1100_RX                                                             04/09/2006 13:44:48 PAGE 7   

 365   1          halSpiWriteReg(CCxxx0_MCSM0 ,   rfSettings.MCSM0 );
 366   1          halSpiWriteReg(CCxxx0_FOCCFG,   rfSettings.FOCCFG);
 367   1          halSpiWriteReg(CCxxx0_BSCFG,    rfSettings.BSCFG);
 368   1          halSpiWriteReg(CCxxx0_AGCCTRL2, rfSettings.AGCCTRL2);
 369   1              halSpiWriteReg(CCxxx0_AGCCTRL1, rfSettings.AGCCTRL1);
 370   1          halSpiWriteReg(CCxxx0_AGCCTRL0, rfSettings.AGCCTRL0);
 371   1          halSpiWriteReg(CCxxx0_FSCAL3,   rfSettings.FSCAL3);
 372   1              halSpiWriteReg(CCxxx0_FSCAL2,   rfSettings.FSCAL2);
 373   1              halSpiWriteReg(CCxxx0_FSCAL1,   rfSettings.FSCAL1);
 374   1          halSpiWriteReg(CCxxx0_FSCAL0,   rfSettings.FSCAL0);
 375   1          halSpiWriteReg(CCxxx0_FSTEST,   rfSettings.FSTEST);
 376   1          halSpiWriteReg(CCxxx0_TEST2,    rfSettings.TEST2);
 377   1          halSpiWriteReg(CCxxx0_TEST1,    rfSettings.TEST1);
 378   1          halSpiWriteReg(CCxxx0_TEST0,    rfSettings.TEST0);
 379   1          halSpiWriteReg(CCxxx0_IOCFG2,   rfSettings.IOCFG2);
 380   1          halSpiWriteReg(CCxxx0_IOCFG0,   rfSettings.IOCFG0);    
 381   1          halSpiWriteReg(CCxxx0_PKTCTRL1, rfSettings.PKTCTRL1);
 382   1          halSpiWriteReg(CCxxx0_PKTCTRL0, rfSettings.PKTCTRL0);
 383   1          halSpiWriteReg(CCxxx0_ADDR,     rfSettings.ADDR);
 384   1          halSpiWriteReg(CCxxx0_PKTLEN,   rfSettings.PKTLEN);
 385   1      }
 386          
 387          
 388          
 389          
 390          
 391          
 392          //*****************************************************************************************
 393          //函数名:void halRfSendPacket(INT8U *txBuffer, INT8U size)
 394          //输入:发送的缓冲区,发送数据个数
 395          //输出:无
 396          //功能描述:CC1100发送一组数据
 397          //*****************************************************************************************
 398          void halRfSendPacket(INT8U *txBuffer, INT8U size) 
 399          {
 400   1              halSpiWriteReg(CCxxx0_TXFIFO, size);
 401   1          halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size); //写入要发送的数据
 402   1      
 403   1          halSpiStrobe(CCxxx0_STX);           //进入发送模式发送数据
 404   1      
 405   1          // Wait for GDO0 to be set -> sync transmitted
 406   1          while (!GDO1);
 407   1      
 408   1          // Wait for GDO0 to be cleared -> end of packet
 409   1          while (GDO1);
 410   1              halSpiStrobe(CCxxx0_SFTX);
 411   1      }
 412          
 413          //*****************************************************************************************
 414          //函数名

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -