wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8733|回復: 8
打印 上一主題 下一主題
收起左側

驅動cc2500底層 C程序 可移植

[復制鏈接]
跳轉到指定樓層
樓主
cc2500的底層驅動 C程序 而且可移植:

全部源碼下載:
Desktop.zip (13.7 KB, 下載次數: 79)

單片機主程序預覽:

  1. #include "CC2500.h"                                        // CC2500無線數傳模塊驅動頭文件

  2. #define C25_Pin_CSn(x)      PORTB_PB5 = x                 // 芯片選擇  (MCU output)
  3. #define C25_Pin_SCLK(x)     PORTB_PB1 = x                 // 時鐘輸入  (MCU output)
  4. #define C25_Pin_SI(x)       PORTB_PB0 = x                 // 數據輸入  (MCU output)
  5. #define C25_Pin_SO          PORTB_PB2                     // 數據輸出  (MCU input)
  6. #define C25_Pin_GDO0        PORTB_PB4                     // 通用輸出  (MCU input)
  7. //#define C25_Pin_GDO2        PORTB_PJ6                     // 通用輸入  (MCU input)



  8. byte   C25_Send_Buff[C25_Buff_Len]={1,2,3,4,5,6,7,8,9,10};// 發送數據緩沖區
  9. byte   C25_Rece_Buff[C25_Buff_Len]={0};                   // 接收數據緩沖區
  10. byte   flag_send_ok = 0;                                //發送完成標志位 0完成  1正在發送

  11. // 函數: C25_Soft_Dly()
  12. // 描述: 軟件延時  10us
  13. // 參數: 無
  14. void C25_Soft_Dly(int ms)            
  15. {
  16.     int ii,jj;
  17.     if (ms<1) ms=1;
  18.     for(ii=0;ii<ms;ii++)
  19.         for(jj=0;jj<200;jj++);    //K60默認頻率for(jj=0;jj<160;jj++);
  20. }

  21. // 函數: C25_SPI_WR_Byte()
  22. // 描述: 通過SPI寫一個byte到CC2500,同時從CC2500讀取一個Byte
  23. // 參數: byte         待寫入字節數據
  24. //                 return 讀取到的字節數據
  25. byte C25_SPI_WR_Byte(byte temp)
  26. {
  27.     byte j;
  28.     for(j=0; j<8; j++)                                   // 循環8次
  29.     {                                 
  30.         C25_Pin_SI((temp & 0x80)>>7);                    // 將byte最高位輸出到SI
  31.         temp <<= 1;                                                    // 低一位移位到最高位
  32.         C25_Pin_SCLK(1);                                 // 拉高SLCK,CC2500從SI讀入1位數據,同時CC2500從SO輸出1位數據
  33.         temp |= C25_Pin_SO;                              // 讀SO到byte最低位
  34.         C25_Pin_SCLK(0);                                 // SCLK置低
  35.     }
  36.     return(temp);                                              // 返回讀取的1Byte數據
  37. }

  38. // 函數: C25_SPI_W_Cmd_Strobes()
  39. // 描述: 向芯片中寫入指令控制字
  40. // 參數: cmd   待寫入的指令控制字
  41. void C25_SPI_W_Cmd_Strobes(byte cmd)
  42. {
  43.     C25_Pin_CSn(0);                                            // CSn置低,開始數據傳輸過程
  44.     (void)C25_SPI_WR_Byte(C25_RW_WRITE_SINGLE | cmd);    // 寫入指令控制字
  45.     C25_Pin_CSn(1);                                      // CSn置高,結束數據傳輸過程
  46. }

  47. // 函數: C25_SPI_W_Reg_Single()
  48. // 描述: 向1個寄存器中寫入數據,同時讀取狀態字
  49. // 參數: addr   待寫入的寄存器地址
  50. //       value         待寫入的字節數據
  51. //                 return 讀取到狀態字
  52. byte C25_SPI_W_Reg_Single(byte addr,byte value)
  53. {
  54.     byte status;
  55.     C25_Pin_CSn(0);                                            // CSn置低,開始數據傳輸過程
  56.     (void)C25_SPI_WR_Byte(C25_RW_WRITE_SINGLE | addr);   // 寫入寄存器地址及讀寫控制
  57.     status = C25_SPI_WR_Byte(value);                     // 寫入寄存器數值,并讀取狀態字
  58.     C25_Pin_CSn(1);                                      // CSn置高,結束數據傳輸過程
  59.     return(status);                                      // 返回狀態字
  60. }

  61. // 函數: C25_SPI_W_Reg_Burst()
  62. // 描述: 向寄存器中寫入多個數據
  63. // 參數: addr   待寫入的寄存器首地址
  64. //       *p         待寫入的數據首地址
  65. //                 num    待寫入的數據長度
  66. void C25_SPI_W_Reg_Burst(byte addr,byte num,byte *p)
  67. {
  68.     byte j;
  69.     C25_Pin_CSn(0);                                      // CSn置低,開始數據傳輸過程
  70.     (void)C25_SPI_WR_Byte(C25_RW_WRITE_BURST | addr);    // 寫入寄存器地址及讀寫控制(多字節)
  71.     for(j=0; j<num; j++)
  72.     {
  73.     (void)C25_SPI_WR_Byte(p[j]);                         // 寫入寄存器數值
  74.     }
  75.     C25_Pin_CSn(1);                                      // CSn置高,結束數據傳輸過程
  76. }

  77. // 函數: C25_SPI_R_Reg_Burst()
  78. // 描述: 從寄存器中讀取多個數據
  79. // 參數: addr   待讀取的寄存器首地址
  80. //       *p         待讀取的寄存器數據存放首地址
  81. //                 num    待讀取的數據長度
  82. void C25_SPI_R_Reg_Burst(byte addr,byte num,byte *p)
  83. {
  84.     byte j;
  85.     C25_Pin_CSn(0);                                      // CSn置低,開始數據傳輸過程
  86.     (void)C25_SPI_WR_Byte(C25_RW_READ_BURST | addr);     // 寫入寄存器地址及讀寫控制(多字節)
  87.     for(j=0; j<num; j++)
  88.     {
  89.         p[j]=C25_SPI_WR_Byte(0);                         // 讀取寄存器數值
  90.     }
  91.     C25_Pin_CSn(1);                                      // CSn置高,結束數據傳輸過程
  92. }

  93. // 函數: C25_Power_ON_Reset()
  94. // 描述: CC2500芯片上電后的復位
  95. // 參數: 無
  96. void C25_Power_ON_Reset(void)
  97. {
  98.     long delay_num = 0;
  99.     DDRB = 0X23;                                                //輸入輸出方向
  100.     PUCR_PUPBE = 0xff;                                             //端口上拉
  101.     PORTB = 0X00;                                               //端口初始化
  102.     C25_Pin_SCLK(0);                                                                                        // SCLK置低
  103.     C25_Pin_SI(0);                                                                                        // SI置低
  104.     C25_Pin_CSn(1);                                             // CSN置高
  105.     C25_Soft_Dly(1);                                            // 延時
  106.     C25_Pin_CSn(0);                                              // CSn置低
  107.     C25_Soft_Dly(1);                                            // 延時
  108.     C25_Pin_CSn(1);                                             // CSn置高
  109.     C25_Soft_Dly(50);                                           // 保持CSn為高至少40uS
  110.     C25_Pin_CSn(0);                                             // CSn置低
  111.     delay_num = 0;
  112.                                                                 //等待時間過長強制跳出 以免卡死程序
  113.     while(C25_Pin_SO==1 && delay_num<500000)    delay_num++;    // 等待SO置低(CHIP_RDYn)
  114.     (void)C25_SPI_WR_Byte(C25_RW_WRITE_SINGLE | C25_CS_SRES);   // 寫入芯片復位指令字
  115.     delay_num = 0;
  116.                                                                 //等待時間過長強制跳出 以免卡死程序
  117.     while(C25_Pin_SO==1 && delay_num<500000)    delay_num++;    // 等待SO再置低,復位完成,此時芯片處于IDLE狀態
  118.     C25_Pin_CSn(1);                                             // CSn置高,結束復位過程
  119. }

  120. // 函數: C25_Reg_Config()
  121. // 描述: CC2500寄存器設置
  122. //       工作頻率: 2400.0MHz (基頻:2400.0MHz, 通道:0, 通道間隔:200kHz)
  123. //       調制模式: GFSK
  124. //       數據速率: 2.4kbps
  125. //       發射功率: +1dBm
  126. //       數據包  : 固定長度
  127. //       CRC校驗 : 開啟
  128. //       數據白化: 開啟
  129. //       曼切斯特: 關閉
  130. //       FEC     : 關閉
  131. void C25_Reg_Config(void)
  132. {
  133.     (void)C25_SPI_W_Reg_Single(C25_RA_IOCFG2,     C25_CR_IOCFGx_INV_DI              // GDO2:不反轉輸出電平
  134.                                           | C25_CR_IOCFGx_SYNC_WORD);               // GDO2:發送/接收到同步字時置位,并在數據包的末尾取消置位
  135.     (void)C25_SPI_W_Reg_Single(C25_RA_IOCFG0,     C25_CR_IOCFG0_TEMP_SENS_DI        // GDO0:禁用模擬溫度傳感器
  136.                                           | C25_CR_IOCFGx_INV_DI                    // GDO0:不反轉輸出電平
  137.                                           | C25_CR_IOCFGx_ABOVE_RX_FIFO_THR_END);   // GDO0:達到或超出RX_FIFO閾值 填充RX_FIFO時置位,或到達數據包結尾時置位.
  138.     (void)C25_SPI_W_Reg_Single(C25_RA_FIFOTHR,    C25_CR_FIFOTHR_TX_1_RX_64);       // 設置TX_FIFO和RX_FIFO閥值(TX:1,RX:64)
  139.     (void)C25_SPI_W_Reg_Single(C25_RA_SYNC1,      C25_CR_SYNC1);                    // 同步字高位(默認0xD3=11010011)
  140.     (void)C25_SPI_W_Reg_Single(C25_RA_SYNC0,      C25_CR_SYNC0);                    // 同步字低位
  141.     (void)C25_SPI_W_Reg_Single(C25_RA_PKTLEN,     C25_Buff_Len);                    // 固定長度數據包時為數據包長度;可變長度數據包時為允許的最大數據包長度
  142.     (void)C25_SPI_W_Reg_Single(C25_RA_PKTCTRL1,   C25_CR_PKTCTRL1_PQT               // 前導質量評估門限(默認值0)(等于0時同步字總能被接收)
  143.                                           | C25_CR_PKTCTRL1_CRC_AUTOFLUSH_EN        // 當接收數據CRC校驗失敗時,自動清空RX_FIFO
  144.                                           | C25_CR_PKTCTRL1_APPEND_STATUS_EN        // 在有效負載上添加狀態字
  145.                                           | C25_CR_PKTCTRL1_ADR_CHK_DI);            // 不檢查地址
  146.     (void)C25_SPI_W_Reg_Single(C25_RA_PKTCTRL0,   C25_CR_PKTCTRL0_WHITE_DATA_EN     // 開啟數據白化
  147.                                           | C25_CR_PKTCTRL0_NORMAL_MODE             // 普通模式,使用FIFO
  148.                                           | C25_CR_PKTCTRL0_CRC_EN                  // 開啟CRC校驗
  149.                                           | C25_CR_PKTCTRL0_PTKLEN_FIXED);          // 固定數據包長度模式,在PKTLEN寄存器中配置長度數據
  150.     (void)C25_SPI_W_Reg_Single(C25_RA_ADDR,       C25_CR_ADDR);                     // 數據包過濾時使用的地址.可選廣播地址為0x00和0xFF
  151.     (void)C25_SPI_W_Reg_Single(C25_RA_FSCTRL1,    C25_CR_FSCTRL1_500KBPS);          // 建議使用SmartRF Studio進行計算
  152.     (void)C25_SPI_W_Reg_Single(C25_RA_FSCTRL0,    C25_CR_FSCTRL0);                  // 建議使用SmartRF Studio進行計算
  153.     (void)C25_SPI_W_Reg_Single(C25_RA_FREQ2,      C25_CR_FREQ2_2400MHz);            // 基頻為2400MHz時的FREQ2寄存器值
  154.     (void)C25_SPI_W_Reg_Single(C25_RA_FREQ1,      C25_CR_FREQ1_2400MHz);            // 基頻為2400MHz時的FREQ1寄存器值
  155.     (void)C25_SPI_W_Reg_Single(C25_RA_FREQ0,      C25_CR_FREQ0_2400MHz);            // 基頻為2400MHz時的FREQ0寄存器值
  156.     (void)C25_SPI_W_Reg_Single(C25_RA_MDMCFG4,    C25_CR_MDMCFG4_500KBPS);          // 建議使用SmartRF Studio進行計算
  157.     (void)C25_SPI_W_Reg_Single(C25_RA_MDMCFG3,    C25_CR_MDMCFG3_500KBPS);          // 建議使用SmartRF Studio進行計算
  158.     (void)C25_SPI_W_Reg_Single(C25_RA_MDMCFG2,    C25_CR_MDMCFG2_DEM_DCFILT_OFF_EN  // 在解調前禁用數字DC阻斷濾波器,使能(更佳的靈敏度)
  159.                                           | C25_CR_MDMCFG2_MOD_FORMAT_2FSK          // 2FSK
  160.                                           | C25_CR_MDMCFG2_MANCHESTER_DI            // 禁用曼切斯特編碼/解碼
  161.                                           | C25_CR_MDMCFG2_30_32_B_SYNC);           // 檢測30/32同步字bit
  162.     (void)C25_SPI_W_Reg_Single(C25_RA_MDMCFG1,    C25_CR_MDMCFG1_FEC_DI             // 禁用交錯向前糾錯
  163.                                           | C25_CR_MDMCFG1_NUM_PREAMBLE_4BYTE       // 最小前導4Byte
  164.                                           | C25_CR_MDMCFG1_CHANSPC_E);              // 通道間隔的2bit指數
  165.     (void)C25_SPI_W_Reg_Single(C25_RA_MDMCFG0,    C25_CR_MDMCFG0_CHANSPC_M);        // 通道間隔的8bit尾數
  166.     (void)C25_SPI_W_Reg_Single(C25_RA_DEVIANT,    C25_CR_DEVIANT_500KBPS);          // 建議使用SmartRF Studio進行計算
  167.     (void)C25_SPI_W_Reg_Single(C25_RA_MCSM2,      C25_CR_MCSM2_RX_TIME_RSSI_DI      // 不使用RSSI測量執行RX終止
  168.                                           | C25_CR_MCSM2_RX_TIME_QUAL_SYNC          // 在RX_TIME定時器超時時,芯片檢查是否找到同步字
  169.                                           | C25_CR_MCSM2_RX_TIME);                  // 在WOR模式和標準RX運行時,RX中的同步字搜索時限
  170.     (void)C25_SPI_W_Reg_Single(C25_RA_MCSM1,      C25_CR_MCSM1_CCA_MODE_RB_UCRPKT   // 如果RSSI在閥值之下且除當前接收數據包外,清空通道指示
  171.                                           | C25_CR_MCSM1_RXOFF_MODE_RX              // 數據包接收完成后保持RX狀態
  172.                                           | C25_CR_MCSM1_TXOFF_MODE_RX);            // 數據包發送完成后進入RX狀態
  173.     (void)C25_SPI_W_Reg_Single(C25_RA_MCSM0,      C25_CR_MCSM0_FS_AUTOCAL_IDLE_RTX  // 從IDLE轉到RX,TX,FSTXON時進行自動校準
  174.                                           | C25_CR_MCSM0_PO_TIMEOUT_EC_64           // 終止計數次數64
  175.                                           | C25_CR_MCSM0_PIN_CTRL_DI                // 禁用由引腳直接進行的無線狀態控制
  176.                                           | C25_CR_MCSM0_XOSC_FORCE_ON_DI);         // XOSC在SLEEP狀態下關閉
  177.     (void)C25_SPI_W_Reg_Single(C25_RA_FOCCFG,     C25_CR_FOCCFG_500KBPS);           // 建議使用SmartRF Studio進行計算
  178.     (void)C25_SPI_W_Reg_Single(C25_RA_BSCFG,      C25_CR_BSCFG_500KBPS);            // 建議使用SmartRF Studio進行計算
  179.     (void)C25_SPI_W_Reg_Single(C25_RA_AGCCTRL2,   C25_CR_AGCCTRL2_500KBPS);         // 建議使用SmartRF Studio進行計算
  180.     (void)C25_SPI_W_Reg_Single(C25_RA_AGCCTRL1,   C25_CR_AGCCTRL1_500KBPS);         // 建議使用SmartRF Studio進行計算
  181.     (void)C25_SPI_W_Reg_Single(C25_RA_AGCCTRL0,   C25_CR_AGCCTRL0_500KBPS);         // 建議使用SmartRF Studio進行計算
  182.     (void)C25_SPI_W_Reg_Single(C25_RA_WOREVT1,    C25_CR_WOREVT1_EVENT0_HBYTE);     // 事件0超時時間高位
  183.     (void)C25_SPI_W_Reg_Single(C25_RA_WOREVT0,    C25_CR_WOREVT0_EVENT0_LBYTE);     // 事件0超時時間低位
  184.     (void)C25_SPI_W_Reg_Single(C25_RA_WORCTRL,    C25_CR_WORCTRL_RC_PD_EN           // 向RC振蕩器發送掉電信號
  185.                                           | C25_CR_WORCTRL_EVENT1_48                // 約1.333~1.385ms
  186.                                           | C25_CR_WORCTRL_RC_CAL_EN                // 開啟RC振蕩器校準
  187.                                           | C25_CR_WORCTRL_WOR_RES_1P);             // 精度1周期,最大時限1.8~1.9秒
  188.     (void)C25_SPI_W_Reg_Single(C25_RA_FREND1,     C25_CR_FREND1_500KBPS);           // 建議使用SmartRF Studio進行計算
  189.     (void)C25_SPI_W_Reg_Single(C25_RA_FREND0,     C25_CR_FREND0_LODIV_BUF_CURRENT_TX// 調節當前TX LO緩沖器(PA的輸入)
  190.                                           | C25_CR_FREND0_PA_POWER_0);              // 選擇PA功率設置
  191.     (void)C25_SPI_W_Reg_Single(C25_RA_FSCAL3,     C25_CR_FSCAL3_500KBPS);           // 建議使用SmartRF Studio進行計算
  192.     (void)C25_SPI_W_Reg_Single(C25_RA_FSCAL2,     C25_CR_FSCAL2);                   // 建議使用SmartRF Studio進行計算
  193.     (void)C25_SPI_W_Reg_Single(C25_RA_FSCAL1,     C25_CR_FSCAL1_500KBPS);           // 建議使用SmartRF Studio進行計算
  194.     (void)C25_SPI_W_Reg_Single(C25_RA_FSCAL0,     C25_CR_FSCAL0_500KBPS);           // 建議使用SmartRF Studio進行計算
  195.     (void)C25_SPI_W_Reg_Single(C25_RA_RCCTRL1,    C25_CR_RCCTRL1);                  // 建議使用SmartRF Studio進行計算
  196.     (void)C25_SPI_W_Reg_Single(C25_RA_RCCTRL0,    C25_CR_RCCTRL0);                  // 建議使用SmartRF Studio進行計算
  197.     (void)C25_SPI_W_Reg_Single(C25_RA_PATABLE,    C25_PS_PATABLE_1dBm);             // 寫入PATABLE(+1.5dBm,21.4mA)
  198.     C25_SPI_W_Cmd_Strobes(C25_CS_SRX);                                              // 開啟RX
  199. }

  200. // 函數: C25_Send_Packet()
  201. // 描述: 通過CC2500發送數據包,發送完成后返回接收狀態
  202. // 參數: *p                待發送數據的首地址


  203. void C25_Send_Packet(byte *p)
  204. {
  205.     Cpu_DisableInt();

  206.     if(!flag_send_ok)//檢測是否正在發送  //中斷使用
  207.     {
  208.     C25_SPI_W_Cmd_Strobes(C25_CS_SIDLE);                                     // 進入IDLE空閑模式
  209.     C25_SPI_W_Cmd_Strobes(C25_CS_SFTX);                                      // 清空TX_FIFO
  210.     C25_SPI_W_Reg_Burst(C25_RA_TXFIFO, C25_Buff_Len, p);        // 將數據寫入TX_FIFO寄存器
  211.     C25_SPI_W_Cmd_Strobes(C25_CS_STX);                                      // 開啟TX
  212.     //flag_send_ok = 1;                                   // 數據發射準備就緒標志位
  213.     //while(C25_Pin_GDO2 == 0);                                                                                     // 等待發送結束  //中斷觸發時注釋這兩句
  214.     //while(C25_Pin_GDO2 == 1);                                                                                                                  // 等待發送結束  //中斷觸發時注釋這兩句
  215.     }                                                                 
  216.     Cpu_EnableInt();

  217. }

  218. // 函數: C25_Rece_Packet()
  219. // 描述: 檢查CC2500是否接收到數據;有接收時將數據返回至接收緩存區
  220. // 參數: *p                接收數據存放地址
  221. //                 return        接收成功標志,為1時表明數據接收成功
  222. byte C25_Rece_Packet(byte *p)
  223. {
  224.     if(C25_Pin_GDO0==1)                                           // 檢查接收數據包是否完成
  225.     {                                                
  226.       C25_SPI_R_Reg_Burst(C25_RA_RXFIFO, C25_Buff_Len+2, p);    // 讀取RX_FIFO及附加狀態字
  227.       C25_SPI_W_Cmd_Strobes(C25_CS_SIDLE);                                        // 進入IDLE空閑模式
  228.       C25_SPI_W_Cmd_Strobes(C25_CS_SFRX);                                          // 清空RX_FIFO
  229.             C25_SPI_W_Cmd_Strobes(C25_CS_SRX);                                          // 重新開啟RX
  230.       return 1;
  231.     }
  232.     return 0;                                                     // 返回接收失敗標志
  233. }


  234. // 函數: C25_Get_RX_dBm()
  235. // 描述: 在完成數據接收后,獲取接收功率
  236. // 參數: rssi   接收信號強度指示
  237. //                 return        接收功率
  238. char C25_Get_RX_dBm(byte rssi)
  239. {
  240.         char t=rssi;
  241.         if(rssi>=128){t-=255;}                                          // 取絕對值
  242.     return(t/2-71);                                               // 計算RSSI值
  243. }                                                   
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:198559 發表于 2017-5-9 11:42 | 只看該作者
學習學習
回復

使用道具 舉報

板凳
ID:302326 發表于 2018-4-5 11:53 | 只看該作者
同樣也要來學習
回復

使用道具 舉報

地板
ID:241128 發表于 2018-5-5 08:51 | 只看該作者
移植后出現這兩句是什么意思啊?求樓主解救...
CC2500.h(4): warning C318: can't open file 'Includes.h'
CC2500.h(6): error C129: missing ';' before 'C25_Send_Buff'
回復

使用道具 舉報

5#
ID:26275 發表于 2018-6-21 23:01 | 只看該作者
fzhlpp 發表于 2018-5-5 08:51
移植后出現這兩句是什么意思?求樓主解救...
CC2500.h(4): warning C318: can't open file 'Includes.h' ...

你手里有Includes.h 這個文件嗎? 需要放到目錄下去,

程序移植過去,還需要針對你自己的電路做一些IO口的修改, 不是直接照搬使用的

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:403593 發表于 2020-3-2 17:39 | 只看該作者
可以用來參考,感謝分享!
回復

使用道具 舉報

7#
ID:743449 發表于 2020-5-17 22:13 | 只看該作者
謝謝分享,正在找呢
回復

使用道具 舉報

8#
ID:149139 發表于 2021-5-6 09:56 | 只看該作者
非常感謝,正在研究
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
成人小视频在线观看免费| 成年人二级毛片| 成人福利网站在线观看| 欧美一级在线免费| 国产精品成人免费在线| 99在线精品视频在线观看| 精品视频91| 免费黄网在线观看| 夜夜爽视频导航| 一本一道人人妻人人妻αv| 欧美黄色一级生活片| 1024精品视频| 日韩videos| 日韩av成人在线| 亚洲三级av在线| 在线观看亚洲a| 国产精品伦一区| 国产一区啦啦啦在线观看| 99久久九九| 国产精品麻豆| 91福利在线尤物| 手机福利在线| 加勒比在线日本| 欧美另类交视频| 精品黑人一区二区三区国语馆| 清纯粉嫩极品夜夜嗨av| 欧美在线一级片| 天天干天天综合| 91传媒免费视频| 欧美美乳视频网站在线观看| 国产精品免费久久久| 久久成人精品一区二区三区| 亚洲精品久久久久中文字幕欢迎你 | 亚洲欧美国产高清va在线播| 色屁屁一区二区| 亚洲欧洲色图综合| 91丨九色丨国产丨porny| 美女精品一区二区| 先锋影音国产一区| 亚洲午夜激情在线| 久久国产影院| 久久超碰99| 欧美黄色影院| 99精品中文字幕在线不卡| gogo亚洲高清大胆美女人体| 爱看av在线入口| 国产黄色在线观看| 18免费在线视频| 青青草视频免费在线观看| 国产精品三级a三级三级午夜| 奇米网人体黄视频| 尤物在线观看视频| www.91popny.com| 国产一级片网站| 欧美精产国品一二三区| 这里都是精品| 亚洲精品久久久成人| 天天干天天操av| 免费观看毛片网站| 成人免费一级视频| 亚洲精品国产片| www国产一区| 亚洲国产精品久久人人爱潘金莲| 一级片在线免费观看视频| 懂色av蜜臀av粉嫩av分享吧最新章节| 青青操免费在线视频| 日本天堂网在线观看| 日韩 欧美 综合| 无码人妻精品一区二区三区蜜桃91| 国产成人无码一区二区三区在线| 亚洲国产成人精品激情在线| 波多野结衣啪啪| 91福利免费视频| 亚洲美女综合网| 日本xxxxwww| 最好看更新中文字幕| 欧美1区二区三区公司| 九色蝌蚪国产| 狠狠干夜夜草| 女人高潮特级毛片| 亚洲成av人影片在线观看| 同心难改在线观看| 色网站免费在线观看| 黄色片网站在线| 日批视频在线播放| 性中国xxx极品hd| 视频1区2区3区| 国产精品美女一区二区视频| 成年女人毛片| 最新亚洲人成网站在线观看| 小明精品国产一区二区三区| 一级毛片视频在线| 在线看片国产福利你懂的| 欧美成人免费全部网站| 欧美wwwwww| 91精品1区| 日本亚洲免费观看| 白白色 亚洲乱淫| 中文字幕亚洲一区二区va在线| 亚洲国产精品一区二区久久 | 欧美连裤袜在线视频| 熟女熟妇伦久久影院毛片一区二区| 久久综合久久网| 香蕉视频色在线观看| 人人妻人人澡人人爽| 丰满少妇乱子伦精品看片| 性中国xxx极品hd| 国产福利一区二区在线精品| 成人网18免费软件大全| 麻豆导航在线观看| 高清视频在线观看三级| 91成人入口| 国产精品草草| 国产一区二三区| 亚洲欧美乱综合| 678五月天丁香亚洲综合网| 一本久久综合亚洲鲁鲁| 日韩暖暖在线视频| 欧美二区在线| 麻豆传传媒久久久爱| 一本加勒比波多野结衣| 日本五十熟hd丰满| 亚洲色图狠狠干| 99re99| 国产成人l区| 97品白浆高清久久久久久| 欧美性久久久| 91啪九色porn原创视频在线观看| 午夜精品一区在线观看| 精品亚洲一区二区三区在线观看 | 国产精品高清乱码在线观看| 国产亚洲一区二区三区啪| 久久久精品午夜少妇| 国产精品视频看| 麻豆成人在线| 久久久高清一区二区三区| 日本丶国产丶欧美色综合| 中文字幕日韩综合av| 成人在线中文字幕| 国产精品久久久久久久乖乖| 右手影院亚洲欧美| 国产精品久久久久久免费播放| 婷婷丁香激情五月| 尤物网址在线观看| 久久久久97| 国产一区高清在线| 欧美综合亚洲图片综合区| 久久97久久97精品免视看| 99九九电视剧免费观看| 孩娇小videos精品| 日韩三级小视频| 国产剧情在线一区| 91青青在线视频| 精品麻豆剧传媒av国产九九九| 国产一区二区三区四区三区四| 久久午夜电影网| 亚洲风情亚aⅴ在线发布| 国产精品午夜国产小视频| 3d动漫一区二区三区| 欧美精品久久久久久久久46p| 男男h黄动漫啪啪无遮挡软件| 在线成年人视频| 成人在线啊v| 日韩av中文在线观看| 欧美日韩亚洲精品一区二区三区| 欧美大片网站在线观看| 免费观看中文字幕| 少妇太紧太爽又黄又硬又爽小说| www.亚洲欧美| 精品乱码一区二区三四区视频| 91精品国产乱码久久久竹菊| 国产综合一区二区| 欧美一区二区黄色| 成人动漫在线观看视频| 中文字幕1区2区| 手机看片一区二区| 在线视频91p| 国产精品久久久久久久| 亚洲欧美怡红院| 久久婷婷国产麻豆91天堂| 久久久一二三四| 亚洲综合网在线| 青青艹在线视频| 亚洲成a人片| 另类调教123区| 欧美一区二区三区人| 爱情岛论坛亚洲入口| 一本加勒比波多野结衣| 性18欧美另类| 黄毛片在线观看| 日韩国产欧美三级| 日韩一级视频免费观看在线| 91免费在线观看网站| asian性开放少妇pics| 欧美作爱福利免费观看视频| 后进极品白嫩翘臀在线播放| 男人的天堂亚洲在线| 欧美三级中文字幕| 国产乱码精品一区二区三区卡 | 毛片一级免费一级| 欧美黑白配在线| 亚洲欧洲99久久| 97在线免费观看视频| 黄色片久久久久| 国产青青草视频| 日韩精品成人av| 最新亚洲一区| 欧美久久婷婷综合色| 精品国产乱码久久久久软件| 久久午夜精品视频| 18岁以下禁止观看的美女视频| 日韩午夜电影免费看| 91在线精品一区二区三区| xxxxx91麻豆| 久久久久久久片| 五月激情婷婷综合| 擼擼色在线看观看免费| 久久国产尿小便嘘嘘| 国产视频久久久久久久| www.成年人视频| av免费观看在线| 亚洲妇熟xxxx妇色黄| 精油按摩中文字幕久久| 国产亚洲视频在线观看| 每日在线观看av| 亚洲爱爱综合网| a欧美人片人妖| 白白色亚洲国产精品| 久久久人成影片一区二区三区| 超碰超碰在线观看| 国产一卡2卡3卡免费网站| 伊人久久影院| 亚洲18色成人| 欧美连裤袜在线视频| 波多野结衣视频网址| 爆操欧美美女| 粉嫩13p一区二区三区| 欧美激情啊啊啊| 日本少妇xxxx| 性直播在线观看| 欧美在线亚洲综合一区| 91精品国产综合久久久久久久| 国产又黄又爽免费视频| 国产情侣小视频| 超碰在线caoporen| 大陆成人av片| 全亚洲最色的网站在线观看| 人妻大战黑人白浆狂泄| 永久看片925tv| 嫩草影院2018| 久久99伊人| 久久久精品国产一区二区| 九九九久久久久久久| xfplay资源站夜色先锋5566| 亚洲精品a级片| 精品国产一区二区在线观看| 丰满少妇被猛烈进入高清播放| 无码精品人妻一区二区| 一区二区亚洲视频| 91久久精品午夜一区二区| 裸体大乳女做爰69| 九九久久久久午夜精选| 久久国产精品色av免费看| 欧美性猛交一区二区三区精品 | 国产一区二区在线播放视频| 成人影院大全| 亚洲免费av高清| 欧美一级爱爱| 蜜桃视频久久一区免费观看入口| 懂色aⅴ精品一区二区三区| 亚洲美女视频一区| 日韩亚洲视频在线| 色婷婷av一区二区三区之红樱桃| 日韩欧国产精品一区综合无码| 亚洲国产成人av好男人在线观看| 欧美精品一区在线| 日韩中文字幕影院| 亚洲国产欧美日韩在线观看第一区 | 国产高清第一页| 99精品视频在线免费播放 | 免费免费啪视频在线观播放| 日韩电影二区| 亚洲男人天堂网| a天堂视频在线观看| 日韩a在线看| 99久久免费精品高清特色大片| 亚洲伊人一本大道中文字幕| 一本一道人人妻人人妻αv| 国产一区二区av在线| 欧美日韩亚洲高清一区二区| 成人黄色片视频| www.4438全国最大| 国产福利视频一区二区三区| 3d蒂法精品啪啪一区二区免费| 96亚洲精品久久久蜜桃| 亚洲综合网站| 亚洲国产精品久久久久秋霞不卡| av漫画在线观看| 番号集在线观看| 国产精品国产自产拍高清av| 宅男噜噜99国产精品观看免费| 手机看片日韩| 精品二区视频| 最新国产成人在线观看| 日韩欧美视频一区二区| 另类free性欧美护士| 亚洲午夜视频| 日韩av免费看| 亚洲最新av网站| 日韩在线影视| 亚洲视频综合网| 国产真实乱在线更新| 伊人色综合一区二区三区影院视频 | 狠狠综合久久av一区二区蜜桃| 亚洲欧美中文日韩v在线观看| 丰满少妇高潮一区二区| 污视频网站在线免费| 欧美日韩亚洲视频| 欧美激情第四页| 幼a在线观看| 欧美性猛交xxxx| 人妻精品久久久久中文字幕69| 成黄免费在线| 婷婷综合久久一区二区三区| 国产理论在线播放| 国产三级电影在线| 亚洲福利一二三区| 天堂中文av在线| 男人天堂久久久| 色综合欧美在线视频区| 四虎影视精品成人| 理论片在线不卡免费观看| 亚洲国产成人自拍| 高清乱码免费看污| 哺乳一区二区三区中文视频 | 在线国产一区二区| 激情国产在线| 深夜国产在线播放| 另类欧美日韩国产在线| 五月天婷亚洲天综合网鲁鲁鲁| 91.·福利| 精品国产电影一区| 殴美一级黄色片| 三级精品视频| 91在线免费视频| 在线观看成人网| 狠狠躁天天躁日日躁欧美| 影音先锋男人在线| 国产一区三区在线播放| 99久久综合狠狠综合久久止| 成人短剧在线观看| 欧美性极品xxxx娇小| 久久久久久激情| 欧美1级日本1级| 天堂一区二区三区 | 亚洲第一福利视频在线| 日本黄区免费视频观看| 精品一区二区三区中文字幕老牛| 岛国视频一区| 日本我和搜子同居的日子高清在线 | 国产精品12345| 性国裸体高清亚洲| 久久久久久亚洲精品中文字幕| 久草中文视频| 国产精品国产三级国产aⅴ原创 | 欧美亚洲精品日韩| 男人的天堂在线| 日韩av影视在线| 亚洲精品一区二区口爆| av成人免费在线| 国产a级片视频| 亚洲人成伊人成综合图片| 精品乱码一区二区三区| 国产三级电影在线观看| 国产一区二区精品丝袜| 久久草在线看| 亚洲欧美二区三区| 国产精品 欧美激情| 亚洲少妇一区| 少妇高清精品毛片在线视频| 国产精品天堂蜜av在线播放| 国产精品久久久久久久久久小说 | 精品日产乱码久久久久久仙踪林| 91探花福利精品国产自产在线| 区一区二日本| 久久综合中文| 免费激情视频在线观看| 永久免费观看精品视频| 97se国产在线视频| 国产粉嫩一区二区三区在线观看| 亚洲欧美中文日韩v在线观看| 欧美亚洲另类在线观看| 亚洲福利视频一区二区| 无码一区二区三区在线观看| 国产精品一二二区| 天天插天天射天天干| 欧美女人交a| 黄在线观看网站| 高清日韩欧美| 亚洲综合五月天|