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

標(biāo)題: STM8 RS485的modbus通迅(主機(jī)及從機(jī))程序代碼 [打印本頁(yè)]

作者: flit1    時(shí)間: 2017-8-24 15:49
標(biāo)題: STM8 RS485的modbus通迅(主機(jī)及從機(jī))程序代碼
如題,兩份源碼程序,STVD打開(kāi)
STM8主控的RS485的modbus通迅所有資料51hei提供下載(含主機(jī)和從機(jī)程序):
STM8RS485通迅(主機(jī)).rar (572.8 KB, 下載次數(shù): 1152)
STM8RS485通迅(從機(jī)).rar (613.53 KB, 下載次數(shù): 930)

stm8單片機(jī)源程序(從機(jī))如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "stm8s_lib.h"
  3. #include "functions.h"
  4. //#include "STM8S103F.h"
  5. #include "stm8s_tim1.h"

  6. /* Private typedef -----------------------------------------------------------*/
  7. /* Private define ------------------------------------------------------------*/

  8. u16                                          re_CRC16;
  9. u8                                                 CRC_Len;
  10. u8                                                 Data_Len;
  11. u8                                                 OffsetAdr;
  12. u8                                                 SlaveAdr;
  13. u8                                                 ModbusFC;
  14. ModBusData                 ModbusRAM[ModBusRAM_LEN_MAX];

  15. void Respond_ModbusREQ(void);
  16. void Init_Clock(void);
  17. /*
  18. void Init_GPIO(void);
  19. void Init_GPIO(void)
  20. {
  21.     GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT);                                //UART1 RX
  22.           GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);                //UART1 TX
  23. }
  24. */
  25. void Init_Clock(void)//
  26. {
  27.     /* Select fCPU = 16MHz*/
  28.                 CLK_DeInit();
  29.     CLK_HSICmd(ENABLE);
  30.     CLK_HSECmd(DISABLE);
  31.                 CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);//CLK_PRESCALER_CPUDIV1 16mhz
  32.                 nop();nop();nop();nop();nop();nop();
  33.     //CLK_CCOConfig(CLK_OUTPUT_CPU);                                /* For test purpose output Fcpu on MCO pin */
  34. }
  35. /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
  36. void Respond_ModbusREQ(void)
  37.         {               
  38.                 u8 tmpMODBUS[RX_LEN_MAX];
  39.                 u8 i;
  40.                
  41.                 ModbusFC = MODBUS[1];
  42.                 Data_Len = MODBUS[5];
  43.                
  44.                 switch(ModbusFC)
  45.                         {
  46.                                 case 0x03:
  47.                                         i = 8;
  48.                                         break;
  49.                                        
  50.                                 case 0x10:
  51.                                         i = (u8)(9 +  (Data_Len * 2));
  52.                                         break;
  53.                                 
  54.                                 default:
  55.                                         i = 0;
  56.                                         break;
  57.                         }
  58.                 if(i>0)
  59.                         {
  60.                                 CRC_Len = (u8)(i - 2);
  61.                                 
  62.                                 while(i>0)
  63.                                 {
  64.                                         tmpMODBUS[i-1] = MODBUS[i-1];
  65.                                         i--;
  66.                                 }
  67.                                 
  68.                                 re_CRC16 = tmpMODBUS[CRC_Len + 1];
  69.                                 re_CRC16 = (re_CRC16<<8)+tmpMODBUS[CRC_Len];                                //尋找接收的CRC碼
  70.                                 CRC16    = crc16(tmpMODBUS,CRC_Len);                                                                //計(jì)算接收數(shù)據(jù)的CRC
  71.                                 if((re_CRC16 == CRC16)&&(OffsetAdr<ModBusRAM_LEN_MAX))//如果校驗(yàn)正確  判斷功能碼和數(shù)據(jù)起始地址
  72.                                         {
  73.                                                 OffsetAdr = (u8)((tmpMODBUS[3]) * 2);                                                //OffsetAdr = tmpMODBUS[2] * 256 + tmpMODBUS[3];
  74.                                                 Data_Len  = (u8)(tmpMODBUS[5] * 2);                                                        //讀寫(xiě)寄存器數(shù)量
  75.                                                 switch(ModbusFC)
  76.                                                         {  
  77.                                                                 case 0x03:                                                                                                                                         //判斷功能碼響應(yīng)指令 發(fā)送被召喚數(shù)據(jù)
  78.                                                                 {
  79.                                                                         //if(tmpMODBUS[3] == 0x01)
  80.                                                                         //        {                                       
  81.                                                                         tmpMODBUS[2] = Data_Len;                                                                        //字節(jié)數(shù)=寄存器數(shù)量*2
  82.                                                                         for(i=0;i<Data_Len;i++)
  83.                                                                         {
  84.                                                                                 if(i & 0x01)
  85.                                                                                         tmpMODBUS[3 + i] = (u8)(ModbusRAM[((OffsetAdr+i)>>1)].ModBus16Word % 0x100);
  86.                                                                                 else
  87.                                                                                         tmpMODBUS[3 + i] = (u8)(ModbusRAM[((OffsetAdr+i)>>1)].ModBus16Word / 0x100);
  88.                                                                         }
  89.                                                                         
  90.                                                                         CRC_Len = (u8)(3 + Data_Len);
  91.                                                                         CRC16   = crc16(tmpMODBUS,CRC_Len);                                //計(jì)算接收數(shù)據(jù)的CRC
  92.                                                                         tmpMODBUS[CRC_Len]=(u8)(CRC16);                                                //LSB
  93.                                                                         tmpMODBUS[CRC_Len+1]=(u8)(CRC16>>8);                        //MSB
  94.                                                                         SEND_ON
  95.                                                                         for(i=0;i<CRC_Len+2;i++)                                                                        //發(fā)送應(yīng)答數(shù)據(jù)        多寄存器讀命令返回
  96.                                                                                 {
  97.                                                                                         UART1->DR=tmpMODBUS[i];
  98.                                                                                         while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);                        //
  99.                                                                                 }
  100.                                                                         while (UART1_GetFlagStatus(UART1_FLAG_TC) == RESET);
  101.                                                                         SEND_OFF
  102.                                                                                 //}                        
  103.                                                                 }
  104.                                                                 break;
  105.                                                         
  106.                                                                 case 0x10:                                                                                                                                         //如果檢測(cè)到是多字節(jié)寫(xiě)入指令
  107.                                                                 {
  108.                                                                         /*
  109.                                                                         FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);                        //寫(xiě)EEPROM準(zhǔn)備
  110.                                                                         FLASH_Unlock(FLASH_MEMTYPE_DATA);        
  111.                                                                         
  112.                                                                         for(i=0;i<Data_Len;i++)                                                                        //寫(xiě)EEP        
  113.                                                                                 {
  114.                                                                                         FLASH_ProgramByte((EEPROM_Start_Adr + OffsetAdr + i), tmpMODBUS[i + 7]);
  115.                                                                                 }
  116.                                                                         */
  117.                                                                         CRC_Len = 3 + 4;                                                                                                //發(fā)送應(yīng)答數(shù)據(jù)
  118.                                                                         CRC16   = crc16(tmpMODBUS,CRC_Len);                        //計(jì)算接收數(shù)據(jù)的CRC

  119.                                                                         tmpMODBUS[CRC_Len]=(u8)(CRC16);                                        //LSB
  120.                                                                         tmpMODBUS[CRC_Len+1]=(u8)(CRC16>>8);                //MSB
  121.                                                                         SEND_ON
  122.                                                                         for(i=0;i<CRC_Len+2;i++)                                                                //發(fā)送應(yīng)答數(shù)據(jù)
  123.                                                                                 {
  124.                                                                                         UART1->DR = tmpMODBUS[i];
  125.                                                                                         while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
  126.                                                                                 }
  127.                                                                         while (UART1_GetFlagStatus(UART1_FLAG_TC) == RESET);
  128.                                                                         SEND_OFF
  129.                                                                 }
  130.                                                                 break;
  131.                                                                
  132.                                                                 default:
  133.                                                                         break;
  134.                                                         }
  135.                                                 return;                                                                                                                                                                        //直接退出中斷函數(shù),不執(zhí)行CT=CT+1;語(yǔ)句
  136.                                         }
  137.                                  else                                                                                                                                                                                         //如果校驗(yàn)出錯(cuò)  發(fā)送自定義異常代碼 80||03||10,04讀寫(xiě)指令ERROR
  138.                                         {        
  139.                                                                                                                                                                                                                                                 //發(fā)送異常代碼
  140.                                                 tmpMODBUS[1] |= 0x80;                                                                                                                //異常指令 OR
  141.                                                 tmpMODBUS[2]        =        0x04;                                                                                                                //異常代碼

  142.                                                 CRC16   = crc16(tmpMODBUS,3);                                                                                //計(jì)算接收數(shù)據(jù)的CRC
  143.                                                 tmpMODBUS[3]         =        (u8)(CRC16);                                                                                //LSB
  144.                                                 tmpMODBUS[4]        =        (u8)(CRC16>>8);                                                                        //MSB
  145.                                                 
  146.                                                 SEND_ON
  147.                                                 for(CRC16=0;CRC16<5;CRC16++)                                                                                //發(fā)送應(yīng)答數(shù)據(jù)
  148.                                                         {
  149.                                                                 UART1->DR=tmpMODBUS[CRC16];
  150.                                                                 while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
  151.                                                         }
  152.                                                 while (UART1_GetFlagStatus(UART1_FLAG_TC) == RESET);
  153.                                                 SEND_OFF
  154.                                                 return;
  155.                                         }
  156.                         }
  157.         }
復(fù)制代碼






作者: stn13135    時(shí)間: 2017-9-4 20:45
好東西,正在學(xué)習(xí)
作者: armauk    時(shí)間: 2017-9-25 11:06
好東西,頂頂
作者: ache0105    時(shí)間: 2017-9-27 17:18
這是用什么軟件寫(xiě)的?
作者: ache0105    時(shí)間: 2017-10-19 20:27
請(qǐng)問(wèn)這是用什么軟件編寫(xiě)的?
作者: kkfy888    時(shí)間: 2017-10-20 01:07
STVD寫(xiě)的
作者: my_lcs    時(shí)間: 2017-10-21 11:03
好東西啊,謝謝啊
作者: my_lcs    時(shí)間: 2017-10-21 11:04

學(xué)習(xí)學(xué)習(xí),非常感謝。。!
作者: laxsystem01    時(shí)間: 2017-10-22 18:49
大贊一個(gè),雖然自己已經(jīng)用了RS485通信好幾年了
作者: ahljj    時(shí)間: 2017-10-23 09:06
好東西啊
作者: ahljj    時(shí)間: 2017-10-23 20:25
STM8 RS485的modbus通迅(主機(jī)及從機(jī))程序代碼
作者: 12345687    時(shí)間: 2017-10-24 20:50
謝謝分享
作者: 狄利克雷    時(shí)間: 2017-10-25 00:39
不錯(cuò)的程序哦
作者: flit1    時(shí)間: 2017-11-12 03:18
樓主宅心仁厚!謝謝,有沒(méi)相關(guān)圖紙?
作者: sunonline2000    時(shí)間: 2017-12-5 18:24
非常感謝
作者: ditozy    時(shí)間: 2017-12-14 09:57

好東西啊,謝謝啊
作者: zcs1975421    時(shí)間: 2017-12-15 15:58
樓主雪中送炭!
作者: viwe    時(shí)間: 2018-1-3 15:35
非常感謝,學(xué)習(xí)1中
作者: yangjf    時(shí)間: 2018-1-4 11:35
好東西,正在學(xué)習(xí)
作者: twjccmx    時(shí)間: 2018-1-5 14:42
好東西,謝謝分享
作者: candura    時(shí)間: 2018-1-10 10:39
發(fā)現(xiàn)一個(gè)問(wèn)題啊,用這個(gè)的從機(jī)代碼出現(xiàn)這樣一個(gè)情況。
如果之前發(fā)送的沒(méi)問(wèn)題的話,那么從機(jī)反饋的數(shù)據(jù)也正常。
但是一旦發(fā)送過(guò)一次有問(wèn)題的數(shù)據(jù),使其返回錯(cuò)誤代碼了的話,之后即便再發(fā)送正確的數(shù)據(jù),也是返回錯(cuò)誤代碼。
作者: dreamflylau007    時(shí)間: 2018-1-12 08:17
回復(fù)了是不是就可以下載
作者: kfjust    時(shí)間: 2018-1-15 11:43
一直再尋找,非常感謝
作者: jmx1124    時(shí)間: 2018-1-18 13:25
STM8L的可以用嗎
作者: stn13135    時(shí)間: 2018-1-27 22:31

好東西,頂頂
作者: zhuangfeng    時(shí)間: 2018-1-29 21:24
這沒(méi)用過(guò)stvd,特地下載了一個(gè),但是要打開(kāi)哪個(gè)文件啊
作者: CHao.chen    時(shí)間: 2018-2-28 17:39
candura 發(fā)表于 2018-1-10 10:39
發(fā)現(xiàn)一個(gè)問(wèn)題啊,用這個(gè)的從機(jī)代碼出現(xiàn)這樣一個(gè)情況。
如果之前發(fā)送的沒(méi)問(wèn)題的話,那么從機(jī)反饋的數(shù)據(jù)也正 ...

怎么好像進(jìn)不了中斷?還有,你們是用的什么串口工具啊
作者: CHao.chen    時(shí)間: 2018-2-28 19:10
樓主有沒(méi)有相應(yīng)的PC端工具
作者: jmx1124    時(shí)間: 2018-3-6 17:40
學(xué)習(xí)一下,有沒(méi)有IAR的
作者: robin97172    時(shí)間: 2018-3-7 09:02
謝謝樓主,下來(lái)學(xué)習(xí)
作者: dfl448866    時(shí)間: 2018-3-14 00:21
謝謝了 很不錯(cuò) 棒棒的
作者: dfl448866    時(shí)間: 2018-3-14 00:21
大贊一個(gè),RS485通信很經(jīng)典
作者: 15861476366    時(shí)間: 2018-3-28 20:08
好東西
作者: picc16    時(shí)間: 2018-4-5 21:06
謝謝分享
作者: liushouchao1    時(shí)間: 2018-4-9 12:46

謝謝分享
作者: tp80986735    時(shí)間: 2018-5-15 19:34
主機(jī)模式怎么跟從機(jī)是一樣的呢?
作者: tyron_chen    時(shí)間: 2018-5-16 23:33
向樓主多學(xué)習(xí)
作者: xode    時(shí)間: 2018-5-24 16:12
謝謝分享
作者: zhangshanqiao    時(shí)間: 2018-5-26 23:17
不錯(cuò),程序結(jié)構(gòu)非常好。CRC16   = crc16(tmpMODBUS,3);  中的unsigned int CRC16(unsinge char *dat,unsigned char len)函數(shù)沒(méi)有看到呢?我其實(shí)是想找CRC算法來(lái)的。
作者: meqqme    時(shí)間: 2018-6-9 16:20

一直再尋找,非常感謝
作者: xiao5    時(shí)間: 2018-6-16 12:55
好資料,學(xué)習(xí)
作者: licongjian55    時(shí)間: 2018-8-9 23:48
學(xué)習(xí)一下,謝謝
作者: blue153    時(shí)間: 2018-8-15 16:26
一直再尋找,非常感謝

作者: hesan621    時(shí)間: 2018-8-17 19:58
Thanks a lot my dear friend

作者: oliverlau2k11    時(shí)間: 2018-8-23 10:39
感謝分享,正好需要,謝謝
作者: ztx2168    時(shí)間: 2018-8-23 11:26
謝謝,正在找這個(gè)。
作者: ztx2168    時(shí)間: 2018-8-24 07:46
太好了,正在找這方面程序,謝謝樓主
作者: sundaybadboy    時(shí)間: 2018-9-2 11:14
正在學(xué)習(xí)Modbus ,希望有幫助
作者: stn13135    時(shí)間: 2018-9-20 10:32
一直再尋找,非常感謝
作者: stn13135    時(shí)間: 2018-9-20 10:33

正在學(xué)習(xí)Modbus ,希望有幫助
作者: creamy    時(shí)間: 2018-9-21 16:57
謝謝樓主分享
作者: zs9999    時(shí)間: 2018-9-23 17:28
謝謝分享
作者: c5435    時(shí)間: 2018-9-28 10:45
感謝分享
作者: hesan921    時(shí)間: 2018-10-14 19:50
Thanks A lot.Thats a Very good library
作者: hesan921    時(shí)間: 2018-10-14 19:50
Thanks for sharing
作者: 15158296    時(shí)間: 2018-10-19 11:13
謝謝,我參考一下
作者: 領(lǐng)會(huì)至愛(ài)    時(shí)間: 2018-11-1 19:46
好資料,謝謝樓主分享
作者: dfadfad    時(shí)間: 2018-11-7 10:44
學(xué)習(xí)一下
作者: gongkailin    時(shí)間: 2018-12-3 00:09
好東西,學(xué)習(xí)了。
作者: gongkailin    時(shí)間: 2018-12-3 00:12
軟件結(jié)構(gòu)很好
作者: gongkailin    時(shí)間: 2018-12-3 00:15
謝謝樓主分享,宅心仁厚。
作者: 18978722314    時(shí)間: 2018-12-25 13:55
主機(jī)就一個(gè)回應(yīng)函數(shù)呀。。沒(méi)有別的發(fā)送
作者: nanyuanqi    時(shí)間: 2019-1-7 20:07
看看。謝謝
作者: pm1981    時(shí)間: 2019-1-8 08:51
非常實(shí)用
作者: 357881011@qq.co    時(shí)間: 2019-1-10 16:05
謝謝,膜拜,膜拜
作者: nashion    時(shí)間: 2019-1-10 17:48
正在學(xué)習(xí)Modbus ,希望有幫助
作者: ABCD12    時(shí)間: 2019-1-11 10:21
stn13135 發(fā)表于 2017-9-4 20:45
好東西,正在學(xué)習(xí)

好東西,找了好久

作者: 520good    時(shí)間: 2019-1-11 11:03
謝謝分享
作者: xode    時(shí)間: 2019-1-13 21:32
謝謝分享,學(xué)習(xí)了
作者: y790247101    時(shí)間: 2019-1-14 19:14
非常好 謝謝
作者: pm1981    時(shí)間: 2019-1-16 09:19
謝謝分享
作者: qq3417    時(shí)間: 2019-1-20 16:03
學(xué)習(xí)一下
作者: 962164789    時(shí)間: 2019-1-28 01:31
好東西  學(xué)習(xí)了了
作者: WFX777888    時(shí)間: 2019-1-29 08:16
好東西,正在學(xué)習(xí)
作者: clnbcl    時(shí)間: 2019-1-31 13:57
沒(méi)怎么用stm芯片了,學(xué)習(xí)。
作者: 樂(lè)獨(dú)    時(shí)間: 2019-2-14 16:31
感謝










作者: crossfan    時(shí)間: 2019-2-15 15:37
大師,可以幫改成IAR環(huán)境的嗎,
作者: koethen    時(shí)間: 2019-2-28 08:18
非常好的東西!
作者: pm1981    時(shí)間: 2019-2-28 09:35
值得學(xué)習(xí)
作者: diedmen    時(shí)間: 2019-3-14 22:01
好東西,頂頂,正好需要
作者: wo411322    時(shí)間: 2019-3-27 21:23
正好用上,謝謝樓主奉獻(xiàn)
作者: lnpeanut    時(shí)間: 2019-3-27 22:06
程序結(jié)構(gòu)蠻不錯(cuò)的,我之前寫(xiě)過(guò)一個(gè),不過(guò)稍微復(fù)雜點(diǎn)
串口接受中斷中,數(shù)據(jù)進(jìn)一個(gè)fifo隊(duì)列,主程序在隊(duì)列中篩選modbus指令,判據(jù)是ID和命令號(hào)
樓主這個(gè)和大多數(shù)一樣的根據(jù)延時(shí)判斷指令的
作者: hou980730    時(shí)間: 2019-3-28 11:12
好厲害
作者: wo411322    時(shí)間: 2019-3-28 17:14
非常感謝,樓主
作者: wo411322    時(shí)間: 2019-3-28 20:41
非常感謝樓主分享,幫大忙了
作者: 藍(lán)少    時(shí)間: 2019-3-29 13:56
好東西啊,謝謝啊
作者: nolimit    時(shí)間: 2019-4-3 14:08
感謝樓主分享
作者: limuzi20    時(shí)間: 2019-5-20 15:26
太感謝樓主了!準(zhǔn)備測(cè)試
作者: yywd4    時(shí)間: 2019-5-20 22:01
下載學(xué)習(xí),謝謝發(fā)帖。
作者: pcicarl    時(shí)間: 2019-6-3 20:13
怎么我編譯不成功!
作者: anllon-cao    時(shí)間: 2019-6-29 14:40
好東西,頂頂
作者: anllon-cao    時(shí)間: 2019-6-29 21:21


一直再尋找,非常感謝
作者: panpufeng2353    時(shí)間: 2019-7-6 12:17
stn13135 發(fā)表于 2017-9-4 20:45
好東西,正在學(xué)習(xí)

很好的代碼,先學(xué)習(xí)學(xué)習(xí)。
作者: anllon-cao    時(shí)間: 2019-7-26 23:41
candura 發(fā)表于 2018-1-10 10:39
發(fā)現(xiàn)一個(gè)問(wèn)題啊,用這個(gè)的從機(jī)代碼出現(xiàn)這樣一個(gè)情況。
如果之前發(fā)送的沒(méi)問(wèn)題的話,那么從機(jī)反饋的數(shù)據(jù)也正 ...

你用什么調(diào)試工具啊?
作者: anllon-cao    時(shí)間: 2019-7-27 00:26
candura 發(fā)表于 2018-1-10 10:39
發(fā)現(xiàn)一個(gè)問(wèn)題啊,用這個(gè)的從機(jī)代碼出現(xiàn)這樣一個(gè)情況。
如果之前發(fā)送的沒(méi)問(wèn)題的話,那么從機(jī)反饋的數(shù)據(jù)也正 ...

你這個(gè)用的是什么調(diào)試工具?if(Flag_Uart2_RX)  為什么總停到這里
作者: aygc    時(shí)間: 2019-7-27 14:42
lnpeanut 發(fā)表于 2019-3-27 22:06
程序結(jié)構(gòu)蠻不錯(cuò)的,我之前寫(xiě)過(guò)一個(gè),不過(guò)稍微復(fù)雜點(diǎn)
串口接受中斷中,數(shù)據(jù)進(jìn)一個(gè)fifo隊(duì)列,主程序在隊(duì)列中 ...

能否分享學(xué)習(xí)一下,謝謝
作者: 1468216262    時(shí)間: 2019-9-17 10:54
大神們。有沒(méi)有stm32 用keil寫(xiě)的
作者: 1468216262    時(shí)間: 2019-9-17 10:55
lnpeanut 發(fā)表于 2019-3-27 22:06
程序結(jié)構(gòu)蠻不錯(cuò)的,我之前寫(xiě)過(guò)一個(gè),不過(guò)稍微復(fù)雜點(diǎn)
串口接受中斷中,數(shù)據(jù)進(jìn)一個(gè)fifo隊(duì)列,主程序在隊(duì)列中 ...

大師,可否分享下,一起學(xué)習(xí)
作者: bbb168    時(shí)間: 2019-9-26 21:50
學(xué)習(xí)了,謝謝分享。
作者: bigye    時(shí)間: 2019-10-18 10:20
標(biāo)記一下,下載來(lái)看看!!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品视频一二三区 | 2019精品手机国产品在线 | 日韩在线一区二区 | 啪啪av| 国产一伦一伦一伦 | 91一区二区 | 91视频国产一区 | 米奇成人网 | 99久久99久久精品国产片果冰 | 国产日产欧产精品精品推荐蛮挑 | 酒色成人网| 国产亚洲一区二区三区 | 中文字幕一区二区三区在线观看 | 在线午夜 | 中文字幕中文字幕 | 九七午夜剧场福利写真 | 国产精品欧美一区二区 | 91高清视频| 亚洲欧洲视频 | 91社区在线高清 | av免费网址 | 亚洲二区视频 | 国产婷婷综合 | 三级在线视频 | 国产免费av网 | 国产乱码精品1区2区3区 | 美女视频网站久久 | 亚洲欧美中文字幕在线观看 | 日韩在线中文字幕 | 国产精品黄 | 一级免费在线视频 | 亚洲精品久久久久久一区二区 | 在线免费观看成年人视频 | 亚洲欧洲成人av每日更新 | 国产一区二区久久 | 中文字幕人成人 | 超碰操| 91av久久久| 91视频国产精品 | 久久免费视频网 | 国产视频中文字幕 |