久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20505|回復: 45
收起左側

STM32驅動CC1101的程序

  [復制鏈接]
ID:64099 發表于 2015-5-2 21:49 | 顯示全部樓層 |閱讀模式
1.png
0.png
STM32驅動CC1101的程序,保證可用

發送程序部分預覽(完整版請下載本帖最后的附件):
  1. /*
  2. ** CC1101 433MHz無線模塊相互通信
  3. ** 2014-11-16
  4. */

  5. #include "stm32f10x.h"
  6. #include "cc1101.h"
  7. #include "led.h"        

  8. /*************NVIC控制器配置***************************/
  9. //組號  搶占位數 子優先級數量
  10. //  組0                        0                                        4
  11. //  組1                        1                                        3
  12. //  組2                        2                                        2
  13. //  組3                        3                                        1
  14. //  組4                        4                                        0
  15. #define NVIC_PRIORITY_GROUP_0   (7 - 0)
  16. #define NVIC_PRIORITY_GROUP_1   (7 - 1)
  17. #define NVIC_PRIORITY_GROUP_2   (7 - 2)
  18. #define NVIC_PRIORITY_GROUP_3   (7 - 3)
  19. #define NVIC_PRIORITY_GROUP_4   (7 - 4)
  20. #define NVIC_PRIORITY_GROUP            (NVIC_PRIORITY_GROUP_2)      /* 設置為組2 */



  21. //#include "RF_Send.h"
  22. //#include "task.h"
  23. //***************更多功率參數設置可詳細參考DATACC1100英文文檔中第48-49頁的參數表******************
  24. //INT8U PaTabel[8] = {0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,0x04};  //-30dBm   功率最小
  25. //INT8U PaTabel[8] = {0x17,0x17 ,0x17 ,0x17 ,0x17 ,0x17,0x17 ,0x17}; //-20dBm
  26. //INT8U PaTabel[8] = {0x1D,0x1D ,0x1D ,0x1D ,0x1D ,0x1D,0x1D ,0x1D}; //-15dBm
  27. //INT8U PaTabel[8] = {0x26,0x26 ,0x26 ,0x26 ,0x26 ,0x26,0x26 ,0x26}; //-10dBm
  28. //INT8U PaTabel[8] = {0x37,0x37 ,0x37 ,0x37 ,0x37 ,0x37,0x37 ,0x37}; //-6dBm
  29. //INT8U PaTabel[8] = {0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60};//0dBm
  30. //INT8U PaTabel[8] = {0x86,0x86 ,0x86 ,0x86 ,0x86 ,0x86,0x86 ,0x86}; //5dBm

  31. const u8 PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};//12dBm

  32. u8 RF_Read_Buff[64];//接收緩沖區

  33. _RF_Sta  RF_Sta;//RF狀態
  34. /////////////////////////////////////////////////////////////////
  35. const RF_SETTINGS rfSettings =
  36. {
  37.         0x00,
  38.         0x08,   // FSCTRL1   Frequency synthesizer control.
  39.         0x00,   // FSCTRL0   Frequency synthesizer control.
  40.         0x10,   // FREQ2     Frequency control word, high byte.
  41.         0xA7,   // FREQ1     Frequency control word, middle byte.
  42.         0x62,   // FREQ0     Frequency control word, low byte.
  43.         0x5B,   // MDMCFG4   Modem configuration.
  44.         0xF8,   // MDMCFG3   Modem configuration.
  45.         0x03,   // MDMCFG2   Modem configuration.
  46.         0x22,   // MDMCFG1   Modem configuration.
  47.         0xF8,   // MDMCFG0   Modem configuration.
  48.         
  49.         0x00,   // CHANNR    Channel number.
  50.         0x47,   // DEVIATN   Modem deviation setting (when FSK modulation is enabled).
  51.         0xB6,   // FREND1    Front end RX configuration.
  52.         0x10,   // FREND0    Front end RX configuration.
  53.         0x18,   // MCSM0     Main Radio Control State Machine configuration.
  54.        // 0x0F,   // MCSM1     Main Radio Control State Machine configuration.
  55.         0x1D,   // FOCCFG    Frequency Offset Compensation Configuration.
  56.         0x1C,   // BSCFG     Bit synchronization Configuration.
  57.         0xC7,   // AGCCTRL2  AGC control.
  58.         0x00,   // AGCCTRL1  AGC control.
  59.         0xB2,   // AGCCTRL0  AGC control.
  60.         
  61.         0xEA,   // FSCAL3    Frequency synthesizer calibration.
  62.         0x2A,   // FSCAL2    Frequency synthesizer calibration.
  63.         0x00,   // FSCAL1    Frequency synthesizer calibration.
  64.         0x11,   // FSCAL0    Frequency synthesizer calibration.
  65.         0x59,   // FSTEST    Frequency synthesizer calibration.
  66.         0x81,   // TEST2     Various test settings.
  67.         0x35,   // TEST1     Various test settings.
  68.         0x09,   // TEST0     Various test settings.
  69.         0x0B,   // IOCFG2    GDO2 output pin configuration.
  70.         0x06,   // IOCFG0D   GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed pseudo register explanation.
  71.         
  72.         0x04,   // PKTCTRL1  Packet automation control.
  73.         0x05,   // PKTCTRL0  Packet automation control.
  74.         0x00,   // ADDR      Device address.
  75.         RFDATLEN    // PKTLEN    Packet length.
  76. };




  77. //*****************************************************************************************
  78. //函數名:delayus(unsigned int s)
  79. //輸入:時間
  80. //輸出:無
  81. //功能描述:普通廷時,內部用
  82. //*****************************************************************************************               

  83. void delayus(u16 timeout)
  84. {
  85.     u8 i;
  86.     do
  87.     {
  88.        for(i=0; i<20; i++);
  89.     }
  90.     while (--timeout);

  91. }

  92. /*****************************************************************************************/
  93. //函數名:CC1101_SpiInit()
  94. //輸入:無
  95. //輸出:無
  96. //功能描述:SPI初始化程序
  97. /*****************************************************************************************/
  98. void CC1101_SpiInit(void)
  99. {
  100.           RCC->APB2ENR|=1<<4;                                             //使能PORTC時鐘
  101.           GPIOC->CRL&=0Xff000000;                                                  
  102.           GPIOC->CRL|=0X00833388;
  103.           GPIOC->ODR|=0x00000023;         
  104. }


  105. void Open_GD0_Interrupt(void)
  106. {
  107.           uint32_t priority;
  108.         
  109.          /* 使能io復用時鐘 */
  110.     RCC->APB2ENR |=  1 << 0;
  111. /* 配置為輸外部中斷5在PC5上 */
  112.     AFIO->EXTICR[1] &= ~(0xF << 4);
  113.     AFIO->EXTICR[1] |=  (2   << 4);

  114.     /* 開啟外部中斷5 */
  115.     EXTI->IMR       |=  (1 << 5);

  116.     /* 上升沿觸發 */
  117.     EXTI->RTSR      |=  (1 << 5);
  118.     EXTI->FTSR      &= ~(1 << 5);
  119.    
  120.           NVIC_SetPriorityGrouping(NVIC_PRIORITY_GROUP);         /* 設置為組2 */
  121.     priority = NVIC_EncodePriority (NVIC_PRIORITY_GROUP, 2, 3);
  122.     NVIC_SetPriority(EXTI9_5_IRQn,priority);  /* EXTIx_IRQn 在stm32f10x.h中有定義 */
  123.     NVIC_EnableIRQ(EXTI9_5_IRQn);

  124. }
  125. //*****************************************************************************************
  126. //函數名:SpisendByte(INT8U dat)
  127. //輸入:發送的數據
  128. //輸出:無
  129. //功能描述:SPI發送一個字節
  130. //*****************************************************************************************
  131. u8 SpiTxRxByte(u8 dat)
  132. {
  133.     u8 i,j,temp= 0;
  134.     SCK = 0;
  135.     for(i=0; i<8; i++)
  136.     {
  137.         if(dat & 0x80)MOSI = 1;
  138.         else MOSI = 0;
  139.                           j++;j++;
  140.         dat <<= 1;
  141.                           j++;j++;
  142.         SCK = 1;
  143.                           j++;j++;
  144.         temp <<= 1;
  145.         if(MISO)temp++;               
  146.         SCK = 0;
  147.                           j++;j++;

  148.     }
  149.     return temp;
  150. }

  151. //*****************************************************************************************
  152. //函數名:void RESET_CC1100(void)
  153. //輸入:無
  154. //輸出:無
  155. //功能描述:復位CC1100
  156. //*****************************************************************************************
  157. u8 RESET_CC1100(void)
  158. {
  159.           u16 n=0;
  160.     CSN = 0;
  161.     while(MISO)
  162.                 {
  163.                   if(++n>300)return 0;
  164.                         delayus(5);
  165.                 }
  166.                 n=0;
  167.     SpiTxRxByte(CCxxx0_SRES);                 //寫入復位命令
  168.     while(MISO)
  169.                 {
  170.                   if(++n>300)return 0;
  171.                         delayus(5);
  172.                 }
  173.     CSN = 1;
  174.                 return 1;
  175. }

  176. //*****************************************************************************************
  177. //函數名:void POWER_UP_RESET_CC1100(void)
  178. //輸入:無
  179. //輸出:無
  180. //功能描述:上電復位CC1100
  181. //*****************************************************************************************
  182. u8 POWER_UP_RESET_CC1100(void)
  183. {
  184.     CSN = 1;
  185.     delayus(10);
  186.     CSN = 0;
  187.     delayus(10);
  188.     CSN = 1;
  189.     delayus(100);
  190.     if(RESET_CC1100())return 1;                  //復位CC1100
  191.           return 0;
  192. }

  193. //*****************************************************************************************
  194. //函數名:void halSpiWriteReg(INT8U addr, INT8U value)
  195. //輸入:地址和配置字
  196. //輸出:無
  197. //功能描述:SPI寫寄存器
  198. //*****************************************************************************************
  199. void halSpiWriteReg(u8 addr, u8 value)
  200. {
  201.           u16 n=0;
  202.     CSN = 0;
  203.     while(MISO)
  204.                 {
  205.                   if(++n>300)break;
  206.                         delayus(5);
  207.                 }
  208.     SpiTxRxByte(addr);                //寫地址
  209.     SpiTxRxByte(value);                //寫入配置
  210.     CSN = 1;
  211. }

  212. //*****************************************************************************************
  213. //函數名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
  214. //輸入:地址,寫入緩沖區,寫入個數
  215. //輸出:無
  216. //功能描述:SPI連續寫配置寄存器
  217. //*****************************************************************************************
  218. void halSpiWriteBurstReg(u8 addr, u8 *buffer, u8 count)
  219. {
  220.     u8 i, temp;
  221.     temp = addr | WRITE_BURST;
  222.     CSN = 0;
  223.     while(MISO)
  224.                 {
  225.                   if(++i>250)break;
  226.                         delayus(5);
  227.                 }
  228.     SpiTxRxByte(temp);
  229.     for (i = 0; i < count; i++)
  230.     {
  231.         SpiTxRxByte(buffer[i]);
  232.     }
  233.     CSN = 1;
  234. }

  235. //*****************************************************************************************
  236. //函數名:void halSpiStrobe(INT8U strobe)
  237. //輸入:命令
  238. //輸出:無
  239. //功能描述:SPI寫命令
  240. //*****************************************************************************************
  241. void halSpiStrobe(u8 strobe)
  242. {
  243.           u8 n=0;
  244.     CSN = 0;
  245.      while(MISO)
  246.                 {
  247.                   if(++n>250)break;
  248.                         delayus(5);
  249.                 }
  250.     SpiTxRxByte(strobe);                //寫入命令
  251.     CSN = 1;
  252. }

  253. //*****************************************************************************************
  254. //函數名:INT8U halSpiReadReg(INT8U addr)
  255. //輸入:地址
  256. //輸出:該寄存器的配置字
  257. //功能描述:SPI讀寄存器
  258. //*****************************************************************************************
  259. u8 halSpiReadReg(u8 addr)
  260. {
  261.     u8 temp, value=0;
  262.     temp = addr|READ_SINGLE;//讀寄存器命令
  263.     CSN = 0;
  264.      while(MISO)
  265.                 {
  266.                   if(++value>250)break;
  267.                         delayus(5);
  268.                 }
  269.     SpiTxRxByte(temp);
  270.     value = SpiTxRxByte(0);
  271.     CSN = 1;
  272.     return value;
  273. }


  274. //*****************************************************************************************
  275. //函數名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
  276. //輸入:地址,讀出數據后暫存的緩沖區,讀出配置個數
  277. //輸出:無
  278. //功能描述:SPI連續寫配置寄存器
  279. //*****************************************************************************************
  280. void halSpiReadBurstReg(u8 addr, u8 *buffer, u8 count)
  281. {
  282.     u8 i=0,temp;
  283.     temp = addr | READ_BURST;                //寫入要讀的配置寄存器地址和讀命令
  284.     CSN = 0;
  285.      while(MISO)
  286.                 {
  287.                   if(++i>250)break;
  288.                         delayus(5);
  289.                 }
  290.     SpiTxRxByte(temp);   
  291.     for (i = 0; i < count; i++)
  292.     {
  293.         buffer[i] = SpiTxRxByte(0);
  294.     }
  295.     CSN = 1;
  296. }


  297. //*****************************************************************************************
  298. //函數名:INT8U halSpiReadReg(INT8U addr)
  299. //輸入:地址
  300. //輸出:該狀態寄存器當前值
  301. //功能描述:SPI讀狀態寄存器
  302. //*****************************************************************************************
  303. u8 halSpiReadStatus(u8 addr)
  304. {
  305.     u8 value=0,temp;
  306.     temp = addr | READ_BURST;                //寫入要讀的狀態寄存器的地址同時寫入讀命令
  307.     CSN = 0;
  308.      while(MISO)
  309.                 {
  310.                   if(++value>250)break;
  311.                         delayus(5);
  312.                 }
  313.     SpiTxRxByte(temp);
  314.     value = SpiTxRxByte(0);
  315.     CSN = 1;
  316.     return value;
  317. }

  318. //*****************************************************************************************
  319. //函數名:void CC1101_Set_PKTLEN(u8 len)
  320. //輸入:無
  321. //輸出:無
  322. //功能描述:配置CC1101數據長度
  323. //*****************************************************************************************
  324. void CC1101_Set_PKTLEN(u8 len)//配置CC1101數據長度
  325. {
  326.    halSpiWriteReg(CCxxx0_PKTLEN,len);
  327. }

  328. //*****************************************************************************************
  329. //函數名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
  330. //輸入:無
  331. //輸出:無
  332. //功能描述:配置CC1100的寄存器
  333. //*****************************************************************************************
  334. void halRfWriteRfSettings(void)
  335. {
  336.    
  337.     halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL2);//自已加的
  338.     // Write register settings
  339.     halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);
  340.     halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL0);
  341.     halSpiWriteReg(CCxxx0_FREQ2,    rfSettings.FREQ2);
  342.     halSpiWriteReg(CCxxx0_FREQ1,    rfSettings.FREQ1);
  343.     halSpiWriteReg(CCxxx0_FREQ0,    rfSettings.FREQ0);
  344.     halSpiWriteReg(CCxxx0_MDMCFG4,  rfSettings.MDMCFG4);
  345.     halSpiWriteReg(CCxxx0_MDMCFG3,  rfSettings.MDMCFG3);
  346.     halSpiWriteReg(CCxxx0_MDMCFG2,  rfSettings.MDMCFG2);
  347.     halSpiWriteReg(CCxxx0_MDMCFG1,  rfSettings.MDMCFG1);
  348.     halSpiWriteReg(CCxxx0_MDMCFG0,  rfSettings.MDMCFG0);
  349.     halSpiWriteReg(CCxxx0_CHANNR,   rfSettings.CHANNR);
  350.     halSpiWriteReg(CCxxx0_DEVIATN,  rfSettings.DEVIATN);
  351.     halSpiWriteReg(CCxxx0_FREND1,   rfSettings.FREND1);
  352.     halSpiWriteReg(CCxxx0_FREND0,   rfSettings.FREND0);
  353.     halSpiWriteReg(CCxxx0_MCSM0 ,   rfSettings.MCSM0 );
  354.     halSpiWriteReg(CCxxx0_FOCCFG,   rfSettings.FOCCFG);
  355.     halSpiWriteReg(CCxxx0_BSCFG,    rfSettings.BSCFG);
  356.     halSpiWriteReg(CCxxx0_AGCCTRL2, rfSettings.AGCCTRL2);
  357.     halSpiWriteReg(CCxxx0_AGCCTRL1, rfSettings.AGCCTRL1);
  358.     halSpiWriteReg(CCxxx0_AGCCTRL0, rfSettings.AGCCTRL0);
  359.     halSpiWriteReg(CCxxx0_FSCAL3,   rfSettings.FSCAL3);
  360.     halSpiWriteReg(CCxxx0_FSCAL2,   rfSettings.FSCAL2);
  361.     halSpiWriteReg(CCxxx0_FSCAL1,   rfSettings.FSCAL1);
  362.     halSpiWriteReg(CCxxx0_FSCAL0,   rfSettings.FSCAL0);
  363.     halSpiWriteReg(CCxxx0_FSTEST,   rfSettings.FSTEST);
  364.     halSpiWriteReg(CCxxx0_TEST2,    rfSettings.TEST2);
  365.     halSpiWriteReg(CCxxx0_TEST1,    rfSettings.TEST1);
  366.     halSpiWriteReg(CCxxx0_TEST0,    rfSettings.TEST0);
  367.     halSpiWriteReg(CCxxx0_IOCFG2,   rfSettings.IOCFG2);
  368.     halSpiWriteReg(CCxxx0_IOCFG0,   rfSettings.IOCFG0);   
  369.     halSpiWriteReg(CCxxx0_PKTCTRL1, rfSettings.PKTCTRL1);
  370.     halSpiWriteReg(CCxxx0_PKTCTRL0, rfSettings.PKTCTRL0);
  371.     halSpiWriteReg(CCxxx0_ADDR,     rfSettings.ADDR);
  372.     halSpiWriteReg(CCxxx0_PKTLEN,   rfSettings.PKTLEN);
  373.                 //halSpiWriteReg(CCxxx0_IOCFG0 ,   rfSettings.PKTLEN);
  374. }


  375. //******************************************************************************************
  376. //函數名:void Set_TxMode(void)
  377. //輸入:無
  378. //輸出:無
  379. //功能描述:設置CC1100為發射模式
  380. //*****************************************************************************************
  381. void Set_TxMode(void)
  382. {
  383.     RF_Sta.mode=RF_TXMODE;
  384.     RF_Sta.Busy=BUSY;//置忙
  385.     GDO0_INTON;//開中斷
  386.           halSpiStrobe(CCxxx0_SIDLE);//強制進入空閑模式
  387.     halSpiStrobe(CCxxx0_STX);                //進入發送模式發送數據
  388. }
  389. //*****************************************************************************************
  390. //函數名:void Set_RxMode(void)
  391. //輸入:無
  392. //輸出:無
  393. //功能描述:設置CC1100為發射接收模式
  394. //*****************************************************************************************
  395. void Set_RxMode(void)
  396. {
  397.     RF_Sta.mode=RF_RXMODE;
  398.           halSpiStrobe(CCxxx0_SFRX);//清洗接收緩沖區
  399.     halSpiStrobe(CCxxx0_SIDLE);//強制進入空閑模式
  400.     halSpiStrobe(CCxxx0_SRX);//進入接收模式
  401.           GDO0_INTON;//開中斷
  402. }
  403. //*****************************************************************************************
  404. //函數名:void halRfSendPacket(INT8U *txBuffer, INT8U size)
  405. //輸入:發送的緩沖區,發送數據個數
  406. //輸出:OK 已發送,其它,錯誤標志
  407. //功能描述:CC1100發送一組數據
  408. //*****************************************************************************************

  409. u8 halRfSendPacket(u8 *txBuffer, u8 size)
  410. {
  411.             u16 value;
  412.       halSpiWriteReg(CCxxx0_TXFIFO, size);
  413.       halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size);        //寫入要發送的數據
  414.       Set_TxMode();//進入發送模式發送數據
  415.             RF_Sta.Busy=BUSY;
  416.             while(RF_Sta.Busy&BUSY)
  417.                         {
  418.               if(++value>350)return ERR;
  419.                            delayus(5);
  420.                         }
  421.             return OK;
  422. }


  423. u8 halRfReceivePacket(u8 *rxBuffer, u8 length)
  424. {
  425.     u8 status[2];
  426.     u8 packetLength;

  427.     if ((halSpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO)) //如果接的字節數不為0
  428.     {
  429.         packetLength = halSpiReadReg(CCxxx0_RXFIFO);//讀出第一個字節,此字節為該幀數據長度
  430.         if (packetLength <= length)                 //如果所要的有效數據長度小于等于接收到的數據包的長度
  431.         {
  432.             halSpiReadBurstReg(CCxxx0_RXFIFO, rxBuffer, packetLength); //讀出所有接收到的數據
  433.             length = packetLength;                                //把接收數據長度的修改為當前數據的長度
  434.             
  435.             // Read the 2 appended status bytes (status[0] = RSSI, status[1] = LQI)
  436.             halSpiReadBurstReg(CCxxx0_RXFIFO, status, 2);         //讀出CRC校驗位
  437.             halSpiStrobe(CCxxx0_SFRX);                //清洗接收緩沖區
  438.             return (status[1] & CRC_OK);                        //如果校驗成功返回接收成功
  439.         }
  440.         else
  441.         {
  442.             length = packetLength;
  443.             halSpiStrobe(CCxxx0_SFRX);                //清洗接收緩沖區
  444.             return 0;
  445.         }
  446.     }
  447.     return 0;
  448. }

  449. u8 CC1101_Init(void)
  450. {
  451.     CC1101_SpiInit();
  452.     if(POWER_UP_RESET_CC1100())//復位CC1100
  453.                 {
  454.                         halRfWriteRfSettings();//配置CC1100
  455.                         halSpiWriteBurstReg(CCxxx0_PATABLE, (u8 *)PaTabel, 8);//設置功率
  456.                         RF_Sta.Busy=IDLE;//空閑
  457.                         RF_Sta.DatFlag=ERR;
  458. //                  Set_TxMode();//默認發送模式
  459.                         Set_RxMode();//進入接收狀態
  460.                         return 1;
  461.                 }
  462.                 return 0;
  463. }



  464. //外部中斷5服務程序
  465. void EXTI9_5_IRQHandler(void)
  466. {
  467.         EXTI->PR=1<<5;  //清除LINE5上的中斷標志位
  468.         GDO0_INTOFF;//關中斷
  469.         if(GDO0)
  470.   {
  471.         delayus(20);
  472.         if(GDO0)
  473.         {
  474.                                           LED1=0;
  475.             while(GDO0);
  476.             switch(RF_Sta.mode)
  477.             {
  478.                 case RF_TXMODE: halSpiStrobe(CCxxx0_SFTX);//清洗發送緩沖區
  479.                                 RF_Sta.Busy=IDLE;//空閑
  480.                                                                           RF_Sta.DatFlag=ERR;
  481.                                 break;
  482.                 case RF_RXMODE:if(halRfReceivePacket((u8 *)&RF_Read_Buff,RFDATLEN))
  483.                                 {
  484.                                    RF_Sta.DatFlag=OK;
  485.                                 }
  486.                                break;
  487.                 default:        
  488.                                                                                      break;
  489.             }                                       
  490.         }
  491.     }                 
  492.                 Set_RxMode();//進入接收狀態
  493. }                 
復制代碼


STM32驅動CC1101代碼與pdf.7z

1.35 MB, 下載次數: 457, 下載積分: 黑幣 -5

評分

參與人數 2黑幣 +55 收起 理由
xl344567789 + 5 很給力!一直在找 謝謝!
admin + 50 共享資料的積分獎勵!

查看全部評分

回復

使用道具 舉報

ID:80373 發表于 2015-5-18 17:30 | 顯示全部樓層
你好,請問你有操作庫函數的cc1101的STM32程序嗎,能給共享一下么
回復

使用道具 舉報

ID:95378 發表于 2015-11-11 14:55 | 顯示全部樓層
51黑有你更精彩!!!
回復

使用道具 舉報

ID:95378 發表于 2015-11-11 14:55 | 顯示全部樓層
51黑有你更精彩!!!
回復

使用道具 舉報

ID:104776 發表于 2016-1-30 22:24 | 顯示全部樓層
樓主好人
回復

使用道具 舉報

ID:113729 發表于 2016-4-12 14:45 | 顯示全部樓層
51黑有你更精彩!!!
回復

使用道具 舉報

ID:113502 發表于 2016-4-15 13:38 | 顯示全部樓層
好資料,謝謝樓主
回復

使用道具 舉報

ID:97176 發表于 2016-6-2 18:11 | 顯示全部樓層
多謝分享,謝謝。。
回復

使用道具 舉報

ID:125221 發表于 2016-6-5 13:07 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:148022 發表于 2016-11-15 13:47 | 顯示全部樓層
樓主好人  樓主萬歲
回復

使用道具 舉報

ID:148668 發表于 2016-11-18 15:31 | 顯示全部樓層
mark_______
回復

使用道具 舉報

ID:166555 發表于 2017-2-25 11:17 | 顯示全部樓層
51黑有你更精彩!!!
回復

使用道具 舉報

ID:4210 發表于 2017-3-7 13:45 | 顯示全部樓層

51黑有你更精彩!!!
回復

使用道具 舉報

ID:182573 發表于 2017-3-23 10:33 | 顯示全部樓層
下來試試,樓主好人
回復

使用道具 舉報

ID:186207 發表于 2017-4-5 10:28 | 顯示全部樓層
不知道能用嗎 試試看
回復

使用道具 舉報

ID:188365 發表于 2017-4-11 10:07 | 顯示全部樓層
感謝樓主分享,下載下來參考一下。
回復

使用道具 舉報

ID:192698 發表于 2017-4-23 15:34 | 顯示全部樓層
樓主,你好,我不太懂的地方是中斷那塊,優先級之類的,他是怎么進入中斷的?還有為什么是用EXTI中斷不是用SPI中斷?
回復

使用道具 舉報

ID:69829 發表于 2017-7-2 12:02 | 顯示全部樓層
感謝樓主的分享!!先收藏了
回復

使用道具 舉報

ID:222291 發表于 2017-7-25 14:34 | 顯示全部樓層
感謝樓主的分享!!好想下載
回復

使用道具 舉報

ID:224643 發表于 2017-8-4 11:17 | 顯示全部樓層
51黑有你更精彩!!!
回復

使用道具 舉報

ID:125692 發表于 2017-8-4 16:43 | 顯示全部樓層
這個不錯謝謝分享
回復

使用道具 舉報

ID:223563 發表于 2017-8-5 14:29 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:230764 發表于 2017-9-3 22:59 | 顯示全部樓層
看看能用不
回復

使用道具 舉報

ID:234156 發表于 2017-9-19 16:49 | 顯示全部樓層
支持!!!!!!!
回復

使用道具 舉報

ID:258522 發表于 2017-12-7 10:41 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:259269 發表于 2017-12-8 23:27 | 顯示全部樓層
下載下來先學習學習
回復

使用道具 舉報

ID:258522 發表于 2017-12-12 16:48 | 顯示全部樓層
51黑精彩
回復

使用道具 舉報

ID:87787 發表于 2018-1-1 13:53 | 顯示全部樓層
很需要這個資料,謝謝樓主!
回復

使用道具 舉報

ID:281078 發表于 2018-1-31 10:35 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

ID:268376 發表于 2018-2-9 19:09 | 顯示全部樓層

很需要這個資料,謝謝樓主!
回復

使用道具 舉報

ID:258139 發表于 2018-2-27 16:30 | 顯示全部樓層
用硬件SPI一直不行,希望能從樓主的這里得到點啟發~
回復

使用道具 舉報

ID:300530 發表于 2018-4-1 20:58 | 顯示全部樓層
多謝分享!
回復

使用道具 舉報

ID:300530 發表于 2018-4-2 14:31 來自手機 | 顯示全部樓層
51黑有你更精彩!
回復

使用道具 舉報

ID:316083 發表于 2018-4-25 11:38 | 顯示全部樓層
參考一下!!!!!!!
回復

使用道具 舉報

ID:320547 發表于 2018-5-2 16:19 | 顯示全部樓層
參考一下!!!!!!!
回復

使用道具 舉報

ID:269116 發表于 2018-9-7 15:14 | 顯示全部樓層
謝謝
回復

使用道具 舉報

ID:20672 發表于 2018-11-13 08:42 | 顯示全部樓層
我愛51hei論壇~~~~
回復

使用道具 舉報

ID:234294 發表于 2018-12-26 15:31 | 顯示全部樓層
正需要呢.......
回復

使用道具 舉報

ID:314702 發表于 2019-1-30 12:44 | 顯示全部樓層
謝謝分享,學習了
回復

使用道具 舉報

ID:434313 發表于 2019-4-3 17:11 | 顯示全部樓層
51黑有你更精彩!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性高朝久久久久久久3小时 av一区二区三区四区 | 欧美一页 | 日韩一区二区三区视频 | 亚洲综合天堂 | 视频一区二区在线观看 | 成人a在线观看 | av在线免费观看网站 | 综合久久综合久久 | 精品国产区 | 自拍偷拍小视频 | 在线看一区二区三区 | 国产农村妇女毛片精品久久麻豆 | 日韩午夜在线播放 | 操久久| 狠狠综合久久av一区二区老牛 | 免费视频一区二区三区在线观看 | 日韩三级在线观看 | 中国一级毛片免费 | 欧美一级欧美三级在线观看 | 国产精品成人久久久久 | 亚洲国产高清高潮精品美女 | 在线观看国产三级 | 亚洲国产第一页 | 成人免费观看男女羞羞视频 | 成人在线免费看 | 亚洲综合日韩精品欧美综合区 | 日韩精品在线观看一区二区三区 | 国产精品亚洲一区二区三区在线 | 91视频88av| 国产成人综合一区二区三区 | 午夜av在线 | 成人在线视频观看 | 精品久久久久久亚洲综合网站 | 国产精品一区二区欧美 | 免费看欧美一级片 | 国产成人免费视频网站视频社区 | 久久精品国产一区二区三区不卡 | 欧美日韩亚洲二区 | 亚洲精品久久久久久久久久久 | 欧美在线视频一区 | 国产一区二区三区 |