在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → ht5017 Soc单相电表程序

ht5017 Soc单相电表程序

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:0.82M
  • 下载次数:42
  • 浏览次数:387
  • 发布时间:2021-08-28
  • 实例类别:嵌入式开发
  • 发 布 人:竖臂摘星
  • 文件格式:.rar
  • 所需积分:2
 相关标签: HT5017 单相电表 嵌入式程序

实例介绍

【源码目录】

HT5017

└── HT5017_141114范例
    ├── HT5017防窃电应用方案.pdf
    ├── Libraries
    │   ├── CMSIS
    │   │   └── CM0
    │   │       ├── CoreSupport
    │   │       │   ├── core_cm0.c
    │   │       │   ├── core_cm0.h
    │   │       │   ├── core_cmFunc.h
    │   │       │   └── core_cmInstr.h
    │   │       └── DeviceSupport
    │   │           ├── ht6xxx.h
    │   │           ├── system_ht6xxx.c
    │   │           └── system_ht6xxx.h
    │   ├── HT60xx_StdPeriph_Driver
    │   │   ├── inc
    │   │   └── src
    │   └── Startup
    │       └── startup_ht501x.s
    ├── Project
    │   ├── 1301_uart0.bin
    │   ├── ExtDll.iex
    │   ├── GPIO.axf
    │   ├── GPIO.hex
    │   ├── GPIO.htm
    │   ├── GPIO.lnp
    │   ├── GPIO.map
    │   ├── GPIO.plg
    │   ├── GPIO.sct
    │   ├── GPIO.tra
    │   ├── GPIO.uvgui.Administrator
    │   ├── GPIO.uvgui.qdli
    │   ├── GPIO.uvgui.user
    │   ├── GPIO.uvgui.yqguo
    │   ├── GPIO.uvgui_Administrator.bak
    │   ├── GPIO.uvgui_qdli.bak
    │   ├── GPIO.uvgui_user.bak
    │   ├── GPIO.uvgui_yqguo.bak
    │   ├── GPIO.uvopt
    │   ├── GPIO.uvproj
    │   ├── GPIO_Target 1.dep
    │   ├── GPIO_uvopt.bak
    │   ├── GPIO_uvproj.bak
    │   ├── JLinkLog.txt
    │   ├── JLinkSettings.ini
    │   ├── cmu.crf
    │   ├── cmu.d
    │   ├── cmu.o
    │   ├── core_cm0.crf
    │   ├── core_cm0.d
    │   ├── core_cm0.o
    │   ├── dlt645.crf
    │   ├── dlt645.d
    │   ├── dlt645.o
    │   ├── emu.crf
    │   ├── emu.d
    │   ├── emu.o
    │   ├── gpio.crf
    │   ├── gpio.d
    │   ├── gpio.o
    │   ├── i2c.crf
    │   ├── i2c.d
    │   ├── i2c.o
    │   ├── key.crf
    │   ├── key.d
    │   ├── key.o
    │   ├── lcd.crf
    │   ├── lcd.d
    │   ├── lcd.o
    │   ├── main.crf
    │   ├── main.d
    │   ├── main.o
    │   ├── pmu.crf
    │   ├── pmu.d
    │   ├── pmu.o
    │   ├── rtc.crf
    │   ├── rtc.d
    │   ├── rtc.o
    │   ├── startup_ht501x.d
    │   ├── startup_ht501x.lst
    │   ├── startup_ht501x.o
    │   ├── startup_ht60xx.d
    │   ├── startup_ht60xx.lst
    │   ├── startup_ht60xx.o
    │   ├── system_ht60xx.crf
    │   ├── system_ht60xx.d
    │   ├── system_ht6xxx.crf
    │   ├── system_ht6xxx.d
    │   ├── system_ht6xxx.o
    │   ├── uart.crf
    │   ├── uart.d
    │   └── uart.o
    ├── Users
    │   ├── cmu.c
    │   ├── cmu.h
    │   ├── dlt645.c
    │   ├── dlt645.h
    │   ├── eeprom.h
    │   ├── emu.c
    │   ├── emu.h
    │   ├── i2c.c
    │   ├── i2c.h
    │   ├── include.h
    │   ├── key.c
    │   ├── key.h
    │   ├── lcd.c
    │   ├── lcd.h
    │   ├── main.c
    │   ├── pmu.c
    │   ├── pmu.h
    │   ├── rtc.c
    │   ├── rtc.h
    │   ├── uart.c
    │   └── uart.h
    ├── si
    │   ├── HT5017_141114.IAB
    │   ├── HT5017_141114.IAD
    │   ├── HT5017_141114.IMB
    │   ├── HT5017_141114.IMD
    │   ├── HT5017_141114.PFI
    │   ├── HT5017_141114.PO
    │   ├── HT5017_141114.PR
    │   ├── HT5017_141114.PRI
    │   ├── HT5017_141114.PS
    │   └── HT5017_141114.WK3
    └── 校表说明.txt

13 directories, 113 files


【核心代码】

#include "include.h"



#define   DCWORD_READ_DATA        0x11 //¶ÁÊý¾Ý
#define   DCWORD_READ_MORE        0x12 //¶ÁºóÐøÊý¾Ý
#define   DCWORD_READ_ADDR        0x13 //¶ÁͨѶµØÖ·
#define   DCWORD_WRITE_DATA       0x14 //дÊý¾Ý        
#define   DCWORD_WRITE_ADDR       0x15 //дͨѶµØÖ·

#define   USER_DI3                0xF9         //Óû§ÃüÁî  ÓÃÓÚУ±í ³õʼ»¯ ÇåÁã
#define   USER_RESET_DIX          0xF9010101   //ϵͳ³õʼ»¯ÃüÁîÊý¾Ý±êʶ
#define   USER_INITIAL            0xABCD
#define   VBAT_CHECK_SUM          0x12345699

#define   BROAD_CAST_99          0x99
#define   BROAD_CAST_AA          0xAA

#define   DLT645_NO_ERR          0x00
#define   DLT645_OTHER_ERR       0x01
#define   DLT645_NO_DATA_ERR    0x02
#define   DLT645_PASSWORD_ERR    0x04
#define   DLT645_BAUDRATE_ERR    0x08
#define   DLT645_NianShiQu_ERR 0x10
#define   DLT645_RiShiDuan_ERR   0x20
#define   DLT645_POWER_RATE_ERR 0x40
#define   DLT645_NO_SEND_ERR     0xFF


typedef union
{
struct
{
uint8_t other_err:1;   //0±íʾÎÞERR  1ÓÐÏàÓ¦ERR·¢Éú
uint8_t no_data_err:1;
uint8_t password_err:1;
uint8_t baudrate_err:1;
uint8_t nian_shiqu_err:1;
uint8_t ri_shiduan_err:1;
uint8_t power_rate_err:1;
uint8_t reserved:1;
}Bits;
uint8_t err;
}DLT645_ERR_DEF;


enum{Ar_Lc=0,Ar_AA,Ar_99,Ar_AL};
typedef union
{
struct
{
uint8_t pass_word:2; //  //1:PA=2   2:PA=4   3:PA=89  ÓÃÓÚУ±í³õʼ»¯µÈ   7£ºÃÜÂë´íÎó 
uint8_t address:2;     //0 ±¾µØµØÖ·  1£ºÍòÄܵØÖ·AA  2£º¹ã²¥µØÖ·99 3: ȱʡµØÖ·-Ö»ÄÜÓÃÀ´¶Á
uint8_t seq:2;            //ÓÃÓÚ±£´æÉÏһ֡ͨѶʱseq   ÔÝʱÁ½¸öbit  ¿ÉÈ·¶¨Èý¸öseq 1 2 3   
uint8_t reserved:2;     //ÓкóÐøÊý¾Ý¸üÐÂseq£¬ÎÞÔòÇåÁã
}Bits;
uint8_t parse_state;
}DLT645_PARSE_STATE_DEF;


typedef struct
{          
uint8_t DI0;              
uint8_t DI1;                                     
uint8_t DI2;                            
uint8_t DI3;                          
uint32_t DIx;                                               
}DLT645_DATAICON_Format;   //Êý¾Ý±êʶ 



DLT_BUF uart4_buf;


static  DLT645_ERR_DEF  dlt645_err;
static  DLT645_PARSE_STATE_DEF  dlt645_parse;
static  DLT645_DATAICON_Format  dlt645_di;


static uint8_t check_645_format(DLT_BUF *ptr_uart_buf);
static uint8_t check_address(DLT_BUF *ptr_uart_buf);
static uint8_t check_sum(uint8_t *ptr, uint8_t len);
static void DLT_645_Parse(DLT_BUF *ptr_uart_buf);
static void read_data(DLT_BUF *ptr_uart_buf);
static void user_read_def(DLT_BUF *ptr_uart_buf);
static void write_can_var(DLT_BUF *ptr_uart_buf);
static void user_write_def(DLT_BUF *ptr_uart_buf);
static void DLT_645_Err_Send(DLT_BUF *ptr_uart_buf);
static void DLT_645_Nor_Send(DLT_BUF *ptr_uart_buf);



void DLT_645_Proc(DLT_BUF *ptr_uart_buf)
{
dlt645_err.err=check_645_format(ptr_uart_buf);//¼ì²éÊý¾Ý¸ñʽÊÇ·ñÓдí

if(dlt645_err.err==DLT645_NO_ERR)
{
  DLT_645_Parse(ptr_uart_buf); //Êý¾Ý½âÎö
}
if(dlt645_err.err!=DLT645_NO_ERR)
{
  DLT_645_Err_Send(ptr_uart_buf);
}
else
{
  DLT_645_Nor_Send(ptr_uart_buf);
}
}


uint8_t check_645_format(DLT_BUF *ptr_uart_buf)
{
  uint8_t tmp,length;

/***************Åжϻù±¾¸ñʽ***************/
length=ptr_uart_buf->DLT645_ComFormat.data_length;
if(ptr_uart_buf->DLT645_ComFormat.start_code!=0x68)          return DLT645_NO_SEND_ERR;
if(ptr_uart_buf->DLT645_ComFormat.mid_start_code!=0x68)      return DLT645_NO_SEND_ERR;
if(ptr_uart_buf->DLT645_ComFormat.com_data[length 1]!=0x16)  return DLT645_NO_SEND_ERR;

/***************ÅжϵØÖ·***************/
  tmp=check_address(ptr_uart_buf);
if(tmp!=DLT645_NO_ERR)  return tmp;

/***************ÅжÏchecksum***************/
tmp=check_sum((uint8_t*)ptr_uart_buf, length 10);
if(tmp!=DLT645_NO_ERR)  return tmp;


return DLT645_NO_ERR;
}


uint8_t check_address(DLT_BUF *ptr_uart_buf)
{
   uint8_t i,a9,aa,a0;

   a9=0;
   aa=0;
   a0=0;
   for(i=0;i<6;i )
   {
     if(ptr_uart_buf->DLT645_ComFormat.meter_address[i]==BROAD_CAST_99)
   {
     a9 ;
   }
   if(ptr_uart_buf->DLT645_ComFormat.meter_address[i]==BROAD_CAST_AA)
   {
     aa ;
   }
//    if(ptr_uart_buf->DLT645_ComFormat.meter_address[i]==can_var.address[i]) //±¾µØµØÖ·
//    {
//      a0 ;
//    }
   }
   if(a9==6)     //2£º¹ã²¥µØÖ·99
   {
   dlt645_parse.Bits.address=Ar_99;
   return DLT645_NO_ERR;
   }
   else if(aa==6)   //1£ºÍòÄܵØÖ·AA
   {
     dlt645_parse.Bits.address=Ar_AA;
   return DLT645_NO_ERR;
   }
   else if(a0==6)   //0: ±¾µØµØÖ·
   {
     dlt645_parse.Bits.address=Ar_Lc;
   return DLT645_NO_ERR;
   }
   else 
   {
return DLT645_NO_SEND_ERR;
   }  
}

//УÑéºÍ
uint8_t check_sum(uint8_t *ptr, uint8_t len)
{
  uint8_t i,sum;

for(sum=0,i=0;i<len;i )
{
  sum = *(ptr i);
}
if(sum==*(ptr i))
{
  for(i=10;i<len;i ) //-0x33
{
  *(ptr i) -= 0x33;
}
return DLT645_NO_ERR;
}
return DLT645_NO_SEND_ERR;
    
}


void DLT_645_Parse(DLT_BUF *ptr_uart_buf)
{
dlt645_di.DI0=ptr_uart_buf->DLT645_ComFormat.com_data[0];
dlt645_di.DI1=ptr_uart_buf->DLT645_ComFormat.com_data[1];
dlt645_di.DI2=ptr_uart_buf->DLT645_ComFormat.com_data[2];
dlt645_di.DI3=ptr_uart_buf->DLT645_ComFormat.com_data[3];
dlt645_di.DIx=(((uint32_t)dlt645_di.DI3)<<24)|(((uint32_t)dlt645_di.DI2)<<16)|(((uint32_t)dlt645_di.DI1)<<8)|(((uint32_t)dlt645_di.DI0));

switch(ptr_uart_buf->DLT645_ComFormat.control_code)
{
case DCWORD_READ_DATA:        //11 ¶ÁÊý¾Ý
read_data(ptr_uart_buf);
break;

case DCWORD_WRITE_DATA:              //14 дÊý¾Ý        
write_can_var(ptr_uart_buf);  
break;

default:
dlt645_err.err=DLT645_NO_DATA_ERR;
break;
}
}


void read_data(DLT_BUF *ptr_uart_buf)
{
   if(dlt645_di.DI3!=USER_DI3)
{
if((dlt645_parse.Bits.address==Ar_99)||(dlt645_parse.Bits.address==Ar_AA))
{
dlt645_err.err=DLT645_NO_SEND_ERR;
return;    
}
}
if(ptr_uart_buf->DLT645_ComFormat.data_length!=4)
{
dlt645_err.err=DLT645_OTHER_ERR;
return;    
}
 
switch(dlt645_di.DI3)
{
case USER_DI3:
   user_read_def(ptr_uart_buf);   //Óû§×Ô¶¨Òå³ÌÐò  ÓÃÓÚУ±í,³õʼ»¯µÈ
break;
 
default:
dlt645_err.err=DLT645_NO_DATA_ERR;
break;
}
}


void user_read_def(DLT_BUF *ptr_uart_buf) //¶ÁУ±í²ÎÊýµÈ
{
  uint8_t *ptr, len;
uint16_t DI_10;
uint32_t read_var;

len=ptr_uart_buf->DLT645_ComFormat.data_length;
ptr=(uint8_t*)&ptr_uart_buf->DLT645_ComFormat.com_data[len]; 

DI_10=(((uint16_t)dlt645_di.DI1)<<8)|((uint16_t)dlt645_di.DI0); 

if(dlt645_di.DI2==0) 
{
if((dlt645_di.DI0%4==0)&&(dlt645_di.DI1!=0x30))    //У±í²ÎÊý
{
read_var=Read_ECADR(DI_10-0x3800);
}
else if((dlt645_di.DI0%4==0)&&(dlt645_di.DI1==0x30))     //¼ÆÁ¿²ÎÊý
{
read_var=Read_EPADR(DI_10-0x3000);
}
else
{
if((dlt645_di.DI0==0xC1)&&(dlt645_di.DI1==0x30))
{
emu_cal_mode=1;
}
else if((dlt645_di.DI0==0xC2)&&(dlt645_di.DI1==0x30))
{
emu_cal_mode=2;
}
else if((dlt645_di.DI0==0xC3)&&(dlt645_di.DI1==0x30))
{
emu_cal_mode=3;
}
else if((dlt645_di.DI0==0xC5)&&(dlt645_di.DI1==0x30))
{
emu_cal_mode=0;
}
else if((dlt645_di.DI0==0xC6)&&(dlt645_di.DI1==0x30))
{
emu_cal_mode=4;
}

dlt645_err.err=DLT645_NO_DATA_ERR;
return;     
}   
ptr[0]=(((read_var>>24)&0xFF)-0x33);   //¸ßλ
ptr[1]=(((read_var>>16)&0xFF)-0x33);
ptr[2]=(((read_var>>8)&0xFF)-0x33);
ptr[3]=((read_var&0xFF)-0x33);
ptr_uart_buf->DLT645_ComFormat.data_length=8; 
}
else    //user def
{
dlt645_err.err=DLT645_NO_DATA_ERR;
return;
}  
}


void write_can_var(DLT_BUF *ptr_uart_buf)
{   
if(USER_DI3==dlt645_di.DI3)
{
user_write_def(ptr_uart_buf);
}
else
{
dlt645_err.err=DLT645_NO_DATA_ERR;
return;        
}
}


void user_write_def(DLT_BUF *ptr_uart_buf)
{
  uint8_t tx;
uint8_t len, *ptr;
uint16_t DI_10, emu_var;
uint32_t vbat_ckecksum;

len=ptr_uart_buf->DLT645_ComFormat.data_length;
ptr=(uint8_t*)&ptr_uart_buf->DLT645_ComFormat.com_data[12];

if(len!=14)
{
dlt645_err.err=DLT645_OTHER_ERR;
return;  


DI_10=(((uint16_t)dlt645_di.DI1)<<8)|((uint16_t)dlt645_di.DI0);
emu_var=((uint16_t)ptr[1]<<8)|((uint16_t)ptr[0]);
tx=1;

if(dlt645_di.DI2==0)
{
  switch(dlt645_di.DI0)
{
case 0xA1:     //µçѹϵÊý     
emu_ecr_reg.ECR.Emu_Krms=(float)(((float)emu_var*1000)/((float)Read_EPADR(EPR_FastRMSU)));   //3λСÊý
break;

case 0xA2:    //µçÁ÷ͨµÀϵÊý    
if(emu_cal_mode!=4)
{
emu_ecr_reg.ECR.Emu_Kims=(float)(((float)emu_var*1000)/((float)Read_EPADR(EPR_FastRMSI1))); //3λСÊý
}
else
{
kims_fast_rmsi1=(float)(((float)emu_var*1000)/((float)fast_get_rmsi1())); //3λСÊý
}
      break;

case 0xA3:    //Óй¦¹¦ÂÊϵÊý     
emu_ecr_reg.ECR.Emu_Kp=(float)(((float)emu_var)/((float)Read_EPADR(EPR_FastPowerP1)));    //3λСÊý kw
break;

default:
//     tx=0;
//     dlt645_err.err=DLT645_NO_DATA_ERR;
break;
}

if(((dlt645_di.DI0%4==0)&&(dlt645_di.DI1!=0x30))||(dlt645_di.DI0==0xA1)||(dlt645_di.DI0==0xA2)||(dlt645_di.DI0==0xA3))
{
if(dlt645_di.DI0%4==0)    //У±í²ÎÊý
{
if(dlt645_di.DI0==0x0C)
{
Write_ECADR(VAR_GP1, emu_var); 
Write_ECADR(VAR_GQ1, emu_var); 
Write_ECADR(VAR_GS1, emu_var); 
emu_ecr_reg.ECR.GP1 = emu_var;
emu_ecr_reg.ECR.GQ1 = emu_var;
emu_ecr_reg.ECR.GS1 = emu_var;
}
else
{
Write_ECADR(DI_10-0x3800, emu_var); 
emu_ecr_reg.ec_array[(DI_10-0x3800)/2] = emu_var&0x00ff;
emu_ecr_reg.ec_array[(DI_10-0x3800)/2 1] = emu_var>>8;
}
}
}
else
{
tx=0;
  dlt645_err.err=DLT645_NO_DATA_ERR;
}
if(tx)
{
  get_checksum((uint8_t*)&emu_ecr_reg,150);
if(emu_cal_mode==0)
{
write_eeprom((uint8_t*)&emu_ecr_reg,EE_EMU_VAR,150);
write_eeprom((uint8_t*)&emu_ecr_reg,EE_RESAVE_EMU_VAR,150);
emu_var_checksum = Read_EPADR(EPR_Checksum);
}
else if(emu_cal_mode==1)
{
write_eeprom((uint8_t*)&emu_ecr_reg,EE_EMU_VAR_225K,150);
emu_var_checksum = Read_EPADR(EPR_Checksum);
}
else if(emu_cal_mode==2)
{
write_eeprom((uint8_t*)&emu_ecr_reg,EE_EMU_VAR_32K,150);
emu_var_checksum = Read_EPADR(EPR_Checksum);
}
else if(emu_cal_mode==3)
{
write_eeprom((uint8_t*)&emu_ecr_reg,EE_EMU_VAR_CONST,150);
emu_var_checksum = Read_EPADR(EPR_Checksum);
}
else if(emu_cal_mode==4)
{
write_eeprom((uint8_t*)&kims_fast_rmsi1,EE_EMU_KIMS_FAST,4);
}
ptr_uart_buf->DLT645_ComFormat.data_length=0;
}
}
else if(USER_RESET_DIX==dlt645_di.DIx)
{
  if(emu_var==USER_INITIAL)    //ËùÓгõʼ»¯
{
vbat_ckecksum=VBAT_CHECK_SUM;
write_eeprom((uint8_t*)&vbat_ckecksum,EE_INITIAL_DWORD_ADDRESS,4);
FreeDog();

else
{
dlt645_err.err=DLT645_NO_DATA_ERR;
return;
}    
}
else  //Óû§×Ô¶¨ÒåÏà¹ØÃüÁî  ÓÃÓÚÇåÁãµÈ
{
dlt645_err.err=DLT645_NO_DATA_ERR;
return;     
}    
}


void DLT_645_Err_Send(DLT_BUF *ptr_uart_buf)
{
uint8_t checksum,i;
uint8_t *ptr;

if(dlt645_err.err==DLT645_NO_SEND_ERR)
{
//²»·¢ËÍ Ö÷ҪΪµØÖ·²»Æ¥Åä   Ö±½ÓÖØнøÈë½ÓÊÕ̬   
uart_var_init(); 
}
else  //·¢Ë͹ÊÕÏÖ¡
{
ptr_uart_buf->DLT645_ComFormat.control_code|=0xC0; 
ptr_uart_buf->DLT645_ComFormat.data_length=0x01;
ptr_uart_buf->DLT645_ComFormat.com_data[0]=dlt645_err.err;
ptr_uart_buf->DLT645_ComFormat.com_data[0] =0x33;

checksum=0;
ptr=(uint8_t*)ptr_uart_buf;
for(i=0;i<11;i )
{
checksum =ptr[i];
}
ptr_uart_buf->DLT645_ComFormat.com_data[1]=checksum;
ptr_uart_buf->DLT645_ComFormat.com_data[2]=0x16; 

prepare_uart4_send();    
}
}


void DLT_645_Nor_Send(DLT_BUF *ptr_uart_buf)
{
uint8_t checksum,i,j;
uint8_t *ptr;

ptr_uart_buf->DLT645_ComFormat.control_code|=0x80; 

for(i=0;i<ptr_uart_buf->DLT645_ComFormat.data_length;i )
{
ptr_uart_buf->DLT645_ComFormat.com_data[i] =0x33;
}
j=ptr_uart_buf->DLT645_ComFormat.data_length 10;
checksum=0;
ptr=(uint8_t*)ptr_uart_buf;
for(i=0;i<j;i )
{
checksum =ptr[i];
}
ptr_uart_buf->DLT645_ComFormat.com_data[ptr_uart_buf->DLT645_ComFormat.data_length]=checksum;
ptr_uart_buf->DLT645_ComFormat.com_data[ptr_uart_buf->DLT645_ComFormat.data_length 1]=0x16;  

prepare_uart4_send();      
}



























































实例下载地址

ht5017 Soc单相电表程序

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警