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

📄 receive.lst

📁 cc1100和STC单片机的无限接收器
💻 LST
📖 第 1 页 / 共 3 页
字号:
 211          //void SendStr(INT8U *arr)
 212          //{
 213          //      INT8U i;
 214                  
 215          //      i = 0;
 216          //      while(arr[i] != '\0')
 217          //      {
 218          //              SendCh(arr[i]);
 219          //              i++;
 220          //      }
 221          //}
 222          
 223          
 224          
 225          //*****************************************************************************************
 226          //函数名:SpisendByte(INT8U dat)
 227          //输入:发送的数据
 228          //输出:无
 229          //功能描述:SPI发送接收一个字节
 230          //*****************************************************************************************
 231          INT8U SpiTxRxByte(INT8U dat)
 232          {
 233   1              INT8U i,temp;
 234   1              temp = 0;
 235   1              
 236   1              SCLK = 0;
 237   1              for(i=0; i<8; i++)
 238   1              {
 239   2                      if(dat & 0x80)//从最高位开始发送
 240   2                      {
 241   3                              MOSI = 1;
C51 COMPILER V7.06   RECEIVE                                                               04/12/2009 09:31:53 PAGE 5   

 242   3                      }
 243   2                      else MOSI = 0;
 244   2                      dat <<= 1;
 245   2      
 246   2                      SCLK = 1; 
 247   2                      _nop_();
 248   2                      _nop_();
 249   2      
 250   2                      temp <<= 1;
 251   2                      if(MISO)temp++; 
 252   2                      SCLK = 0;
 253   2                      _nop_();
 254   2                      _nop_();        
 255   2              }
 256   1              return temp;
 257   1      }
 258          
 259          
 260          
 261          
 262          //*****************************************************************************************
 263          //函数名:void RESET_CC1100(void)
 264          //输入:无
 265          //输出:无
 266          //功能描述:复位CC1100
 267          //*****************************************************************************************
 268          void RESET_CC1100(void) 
 269          {
 270   1              CSN = 0; 
 271   1              while (MISO); 
 272   1              SpiTxRxByte(CCxxx0_SRES);               //写入复位命令
 273   1              while (MISO); 
 274   1              CSN = 1; 
 275   1      }
 276          
 277          
 278          
 279          //*****************************************************************************************
 280          //函数名:void POWER_UP_RESET_CC1100(void) 
 281          //输入:无
 282          //输出:无
 283          //功能描述:上电复位CC1100
 284          //*****************************************************************************************
 285          void POWER_UP_RESET_CC1100(void) 
 286          {
 287   1              CSN = 1; 
 288   1              halWait(1); 
 289   1              CSN = 0; 
 290   1              halWait(1); 
 291   1              CSN = 1; 
 292   1              halWait(41); 
 293   1              RESET_CC1100();                 //复位CC1100
 294   1      }
 295          
 296          
 297          
 298          //*****************************************************************************************
 299          //函数名:void halSpiWriteReg(INT8U addr, INT8U value)
 300          //输入:地址和配置字
 301          //输出:无
 302          //功能描述:SPI写寄存器
 303          //*****************************************************************************************
C51 COMPILER V7.06   RECEIVE                                                               04/12/2009 09:31:53 PAGE 6   

 304          void halSpiWriteReg(INT8U addr, INT8U value) 
 305          {
 306   1          CSN = 0;
 307   1          while (MISO);
 308   1          SpiTxRxByte(addr);          //通过spi写地址
 309   1          SpiTxRxByte(value);         //写入配置
 310   1          CSN = 1;
 311   1      }
 312          
 313          
 314          
 315          
 316          //*****************************************************************************************
 317          //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
 318          //输入:地址,写入缓冲区,写入个数
 319          //输出:无
 320          //功能描述:SPI连续写配置寄存器
 321          //*****************************************************************************************
 322          void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 323          {
 324   1          INT8U i, temp;
 325   1              temp = addr | WRITE_BURST;
 326   1          CSN = 0;
 327   1          while (MISO);
 328   1          SpiTxRxByte(temp);
 329   1          for (i = 0; i < count; i++)
 330   1              {
 331   2              SpiTxRxByte(buffer[i]);
 332   2          }
 333   1          CSN = 1;
 334   1      }
 335          
 336          
 337          
 338          
 339          //*****************************************************************************************
 340          //函数名:void halSpiStrobe(INT8U strobe)
 341          //输入:命令
 342          //输出:无
 343          //功能描述:SPI写命令
 344          //*****************************************************************************************
 345          void halSpiStrobe(INT8U strobe) 
 346          {
 347   1          CSN = 0;
 348   1          while (MISO);
 349   1          SpiTxRxByte(strobe);                //写入命令
 350   1          CSN = 1;
 351   1      }
 352          
 353          
 354          
 355          
 356          
 357          //*****************************************************************************************
 358          //函数名:INT8U halSpiReadReg(INT8U addr)
 359          //输入:地址
 360          //输出:该寄存器的配置字
 361          //功能描述:SPI读寄存器
 362          //*****************************************************************************************
 363          INT8U halSpiReadReg(INT8U addr) 
 364          {
 365   1              INT8U temp, value;
C51 COMPILER V7.06   RECEIVE                                                               04/12/2009 09:31:53 PAGE 7   

 366   1          temp = addr|READ_SINGLE;//读寄存器命令
 367   1              CSN = 0;
 368   1              while (MISO);
 369   1              SpiTxRxByte(temp);
 370   1              value = SpiTxRxByte(0);
 371   1              CSN = 1;
 372   1              return value;
 373   1      }
 374          
 375          
 376          //*****************************************************************************************
 377          //函数名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
 378          //输入:地址,读出数据后暂存的缓冲区,读出配置个数
 379          //输出:无
 380          //功能描述:SPI连续写配置寄存器
 381          //*****************************************************************************************
 382          void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 383          {
 384   1          INT8U i,temp;
 385   1              temp = addr | READ_BURST;               //写入要读的配置寄存器地址和读命令
 386   1          CSN = 0;
 387   1          while (MISO);
 388   1              SpiTxRxByte(temp);   
 389   1          for (i = 0; i < count; i++) 
 390   1              {
 391   2              buffer[i] = SpiTxRxByte(0);
 392   2          }
 393   1          CSN = 1;
 394   1      }
 395          
 396          
 397          
 398          
 399          //*****************************************************************************************
 400          //函数名:INT8U halSpiReadReg(INT8U addr)
 401          //输入:地址
 402          //输出:该状态寄存器当前值
 403          //功能描述:SPI读状态寄存器
 404          //*****************************************************************************************
 405          INT8U halSpiReadStatus(INT8U addr) 
 406          {
 407   1          INT8U value,temp;
 408   1              temp = addr | READ_BURST;               //写入要读的状态寄存器的地址同时写入读命令
 409   1          CSN = 0;
 410   1          while (MISO);
 411   1          SpiTxRxByte(temp);
 412   1              value = SpiTxRxByte(0);
 413   1              CSN = 1;
 414   1              return value;
 415   1      }
 416          
 417          
 418          
 419          
 420          //*****************************************************************************************
 421          //函数名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
 422          //输入:无
 423          //输出:无
 424          //功能描述:配置CC1100的寄存器
 425          //*****************************************************************************************
 426          void halRfWriteRfSettings(void) 
 427          {
C51 COMPILER V7.06   RECEIVE                                                               04/12/2009 09:31:53 PAGE 8   

⌨️ 快捷键说明

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