OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 6169|回复: 26

使用WM8978遇到一些问题的总结

[复制链接]

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
发表于 2017-3-13 09:58:56 | 显示全部楼层 |阅读模式
正点原子公众号
本帖最后由 lzq12 于 2017-3-13 09:58 编辑

按着原子哥F407探索者的图自己做了个板子,其中在使用声卡芯片WM8978时遇到了一些问题,目前总结一下
1.使用例程播放音乐时会有滋滋的电流声
2.播放音乐时,比如播放MP3,buffer、tempbuffer、audiodev.file这些使用外部SRAMEX时会直接导致内存溢出而死掉,只能用内存SRAMIN。audiodev.i2sbuf1、audiodev.i2sbuf2、audiodev.tbuf可以用外部SRAMEX,但是声音都变形了,使用内部SRAMIN是正常的


其实这两个问题是同一个原因引起的,因为在走线时,底层的I2S_MCLK走线和外部SRAM芯片顶层的数据走线形成了十字交叉,造成了互相干扰,导致外部SRAM在和WM8978同时工作不正常(外部SRAM单独使用时完全正常),走线问题解决后,一切正常了......


3.使用L2、R2作为声音采集输入,LOUT1、ROUT1作为声音输出时,L2、R2的声音直通LOUT1、ROUT1,完全无法关闭
对于问题3,按道理只要关闭了 WM8978内部结构图里 39 这个寄存器控制的位就能够让LOUT1、ROUT1不输出声音,但很遗憾的是完全不起作用啊,把所有能关的寄存器都关了,甚至58个寄存器全部写0也无法关闭,瞬间崩溃异常后来按着手册挨个查看寄存器的功能后,发现R1寄存器的第2位BUFIOEN有很大的作用,中文手册是这么解释的:WM8978的每一个模拟输出都可以单独的使能或者不使能,联合到模拟混合器的每一个输出可以单独的使能,所有输出都是默认不使能。为了节省电能,WM8978不用的部分应该保留不使能。输出可以在任何时间被使能,但当配置为推动模式时如果BUFIO被禁用或者BUFDCOP被停用不推荐这样做,因为这可能会导致弹出式噪音。
也就是说BUFIOEN位不置位,那没法对那些输出什么的寄存器进行开关控制。原子哥的配置是WM8978_Write_Reg(1,0X1B);也就是BUFIOEN位为0,把BUFIOEN位置位后则变成WM8978_Write_Reg(1,0X1F);这样一来,就可以直接控制相应的寄存器开关了,其他地方的配置也没有改什么,但L2、R2的声音不会直通LOUT1、ROUT1。至此,WM8978可以实现录音、放音以及录音的同时放音。

WM8978原理图

WM8978原理图

WM8978内部结构图

WM8978内部结构图
回复

使用道具 举报

  离线 

3

主题

6

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2017-4-12
在线时间
6 小时
发表于 2017-4-12 10:26:34 | 显示全部楼层
楼主有没有WM8960驱动代码,
回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-4-12 16:31:25 | 显示全部楼层
guoguomingming 发表于 2017-4-12 10:26
楼主有没有WM8960驱动代码,

没有哦,不过应该和WM8978差不多吧,你参考参考原子哥的WM8978程序,应该大同小异的
回复 支持 反对

使用道具 举报

  离线 

500

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
129741
金钱
129741
注册时间
2010-12-1
在线时间
1169 小时
发表于 2017-4-12 18:41:15 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

228

主题

681

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1584
金钱
1584
注册时间
2012-10-28
在线时间
259 小时
发表于 2017-4-25 17:11:12 | 显示全部楼层
正点原子公众号
你好,能否提供一下参考程序啊,
回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-4-26 13:13:18 | 显示全部楼层
hpdell 发表于 2017-4-25 17:11
你好,能否提供一下参考程序啊,

直接参考原子哥的程序,但在初始化的时候改一下WM8978_Write_Reg(1,0X1F);,其他的基本不变,需要关闭其他音源可以对照寄存器改的
回复 支持 反对

使用道具 举报

  离线 

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2014-4-14
在线时间
9 小时
发表于 2017-4-26 21:40:50 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2017-5-1
在线时间
7 小时
发表于 2017-5-4 10:03:03 | 显示全部楼层
你好,请怎么操作使用L2 R2作为输入呢?根据规格书寄存器操作

寄存器地址
标志
默认值
描述
R2 Power Management 2
2
INPPGAENL
0
左通道输入PGA使能
0=不使能
1=使能
3
INPPGAENR
0
右通道输入PGA使能
0=不使能
1=使能


寄存器地址
标志
默认值
描述
R44 Input Control
0
LIP2INPPGA
1
连接LIP引脚到左通道的输入PGA放大器同相接线端
0=LIP不连接到输入PGA
1=LIP连接到输入PGA放大器同相接线端(恒定的输入电阻)
1
LIN2INPPGA
1
连接LIN引脚到左通道的输入PGA反相接线端
0=LIP不连接到输入PGA
1=LIP连接到输入PGA放大器反相接线端
2
L2_2INPPGA
0
连接L2引脚到左通道的输入PGA放大器同相接线端
0=L2不连接到输入PGA
1=L2连接到输入PGA放大器同相接线端(恒定的输入电阻)
4
RIP2INPPGA
1
连接RIP引脚到右通道的输入PGA放大器同相接线端
0=RIP不连接到输入PGA
1=RIP连接到输入PGA放大器同相接线端(恒定的输入电阻)
5
RIN2INPPGA
1
连接RIN引脚到右通道的输入PGA放大器反相接线端
0=RIN不连接到输入PGA
1=RIN连接到输入PGA放大器反相接线端
6
R2_2INPPGA
0
连接R2引脚到右通道的输入PGA放大器同相接线端
0=R2不连接到输入PGA
1=R2连接到输入PGA放大器同相接线端(恒定的输入电阻)



        WM8978_Write_Reg(2,0xc0);        // 开启 INPPGAENR,INPPGAENL

        WM8978_Write_Reg(44,0x44);// 开启
L2_2INPPGA
R2_2INPPGA



我是这样操作的,但是没有声音,如果使用LIN,LIP,RIN,RIP 就是WM8978_Write_Reg(44,0x33);的时候是有声音的


楼主是怎么操作成功使用L2 R2作为输入的呢?

回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-5-4 16:05:02 | 显示全部楼层
a3370 发表于 2017-5-4 10:03
你好,请怎么操作使用L2 R2作为输入呢?根据规格书寄存器操作

初始化的时候寄存器1要这样设置,WM8978_Write_Reg(1,0X1F);//R1,MICEN设置为1(MIC使能),BIASEN设置为1(模拟器工作),VMIDSEL[1:0]设置为:11(5K),BUFIOEN位要置1,后面的输出才能随时打开,否则后面无法单独控制各个寄存器的开关

//WM8978 输入通道配置
//micen:MIC开启(1)/关闭(0)
//lineinenine In开启(1)/关闭(0)
//auxen:aux开启(1)/关闭(0)
void WM8978_Input_Cfg(u8 micen,u8 lineinen,u8 auxen)
{
        u16 regval;  
        regval=WM8978_Read_Reg(2);        //读取R2
        if(micen)regval|=3<<2;                //开启INPPGAENR,INPPGAENL(MIC的PGA放大)
        else regval&=~(3<<2);                //关闭INPPGAENR,INPPGAENL.
        WM8978_Write_Reg(2,regval);        //设置R2
       
        regval=WM8978_Read_Reg(44);        //读取R44
        if(micen)regval|=3<<4|3<<0;        //开启LIN2INPPGA,LIP2INPGA,RIN2INPPGA,RIP2INPGA.
        else regval&=~(3<<4|3<<0);        //关闭LIN2INPPGA,LIP2INPGA,RIN2INPPGA,RIP2INPGA.
       
        if(lineinen)regval|=1<<6|1<<2;//开启L2_2INPPGA,R2_2INPPGA
        else regval&=~(1<<6|1<<2); //关闭L2_2INPPGA,R2_2INPPGA
        WM8978_Write_Reg(44,regval);//设置R44
       
        if(lineinen)WM8978_LINEIN_Gain(5);//LINE IN 0dB增益
        else WM8978_LINEIN_Gain(0);        //关闭LINE IN
        if(auxen)WM8978_AUX_Gain(7);//AUX 6dB增益
        else WM8978_AUX_Gain(0);        //关闭AUX输入  
}
回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-5-4 16:06:07 | 显示全部楼层
a3370 发表于 2017-5-4 10:03
你好,请怎么操作使用L2 R2作为输入呢?根据规格书寄存器操作

然后要使用的时候调用WM8978_Input_Cfg(0,1,0);WM8978_LINEIN_Gain(5);
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2017-5-1
在线时间
7 小时
发表于 2017-5-4 21:59:01 | 显示全部楼层
lzq12 发表于 2017-5-4 16:06
然后要使用的时候调用WM8978_Input_Cfg(0,1,0);WM8978_LINEIN_Gain(5);

我的还是没有声音代码:
WM8978_Init:
        WM8978_Write_Reg(1,0X1F);        //R1,MICENéèÖÃÎa1(MICê1Äü),BIASENéèÖÃÎa1(Ä£ÄaÆ÷1¤×÷),VMIDSEL[1:0]éèÖÃÎa:11(5K)
        WM8978_Write_Reg(2,0X1B0);        //R2,ROUT1,LOUT1êä3öê1Äü(¶ú»ú¿éòÔ1¤×÷),BOOSTENR,BOOSTENLê1Äü
        WM8978_Write_Reg(3,0X6C);        //R3,LOUT2,ROUT2êä3öê1Äü(à®°è1¤×÷),RMIX,LMIXê1Äü       
        WM8978_Write_Reg(6,0);                //R6,MCLKóéía2¿ìá1©
        WM8978_Write_Reg(43,1<<4);        //R43,INVROUT2·′Ïò,Çy¶ˉà®°è
        WM8978_Write_Reg(47,1<<8);        //R47éèÖÃ,PGABOOSTL,×óí¨μàMIC»ñμÃ20±¶Ôöòæ1<<8|
        WM8978_Write_Reg(48,1<<8);        //R48éèÖÃ,PGABOOSTR,óòí¨μàMIC»ñμÃ20±¶Ôöòæ1<<8|
        WM8978_Write_Reg(49,1<<1);        //R49,TSDEN,¿aÆô1yèè±£»¤
        WM8978_Write_Reg(10,1<<3);        //R10,SOFTMUTE1رÕ,128x2éÑù,×î¼ÑSNR
        WM8978_Write_Reg(14,1<<3);        //R14,ADC 128x2éÑùÂê


void WM8978_Input_Cfg(u8 micen,u8 lineinen,u8 auxen)
{

u16 regval;  
          regval=WM8978_Read_Reg(2);                //??R2
          if(micen)regval|=3<<2;                                //??INPPGAENR,INPPGAENL(MIC?PGA??)
          else regval&=~(3<<2);                            //??INPPGAENR,INPPGAENL.
          WM8978_Write_Reg(2,regval);                 //??R2
          
          regval=WM8978_Read_Reg(44);                 //??R44
          if(micen)regval|=3<<4|3<<0;                 //??LIN2INPPGA,LIP2INPGA,RIN2INPPGA,RIP2INPGA.
          else regval&=~(3<<4|3<<0);                //??LIN2INPPGA,LIP2INPGA,RIN2INPPGA,RIP2INPGA.
          
          if(lineinen)regval|=1<<6|1<<2;//??L2_2INPPGA,R2_2INPPGA
          else regval&=~(1<<6|1<<2); //??L2_2INPPGA,R2_2INPPGA
          WM8978_Write_Reg(44,regval);//??R44
          
          if(lineinen)WM8978_LINEIN_Gain(5);//LINE IN 0dB??
          else WM8978_LINEIN_Gain(0);                 //??LINE IN
          
          if(auxen)WM8978_AUX_Gain(7);//AUX 6dB??
          else WM8978_AUX_Gain(0);                  //??AUX??  

}


然后
        WM8978_ADDA_Cfg(0,1);                //¿aÆôADC
        WM8978_Input_Cfg(0,1,0);        //¿aÆôêäèëí¨μà(MIC&LINE IN)
        WM8978_Output_Cfg(0,1);                //¿aÆôBYPASSêä3ö
        //WM8978_MIC_Gain(46);                //MICÔöòæéèÖÃ
        WM8978_LINEIN_Gain(5);

这样还是没有声音
如果我改为
        WM8978_ADDA_Cfg(0,1);                //¿aÆôADC
        WM8978_Input_Cfg(1,1,0);        //¿aÆôêäèëí¨μà(MIC&LINE IN)
        WM8978_Output_Cfg(0,1);                //¿aÆôBYPASSêä3ö
        WM8978_MIC_Gain(46);                //MICÔöòæéèÖÃ
        //WM8978_LINEIN_Gain(5);

MIC是可以输入声音的

很奇怪,是不是我配置还是问题

回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-5-5 09:19:46 | 显示全部楼层
a3370 发表于 2017-5-4 21:59
我的还是没有声音代码:
WM8978_Init:
        WM8978_Write_Reg(1,0X1F);        //R1,MICENéèÖÃÎ ...

只录音时WM8978_Output_Cfg(0,0);试试,录音同时播放的用WM8978_Output_Cfg(1,0);试试
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2017-5-1
在线时间
7 小时
发表于 2017-5-10 17:34:38 | 显示全部楼层
lzq12 发表于 2017-5-5 09:19
只录音时WM8978_Output_Cfg(0,0);试试,录音同时播放的用WM8978_Output_Cfg(1,0);试试

成功了,用L2 R2输入,之前问题是因为麦克风的问题(白做很多无用功
但现在又遇到个问题:

        WM8978_Output_Cfg(0,1); 用bypass 输出模式,没有按键开始录音

        L2 R2 一直输入音频,耳机开始会有声音,但是过了几秒声音变沙然后就没有了

       这个是什么原因呢,求助!!!!!!!
回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-5-11 15:41:50 | 显示全部楼层
a3370 发表于 2017-5-10 17:34
成功了,用L2 R2输入,之前问题是因为麦克风的问题(白做很多无用功)
但现在又遇到个问题:

WM8978_Output_Cfg(0,1);这个是指打开混频输出,就是让L2 R2的声音也跟着输出到OUT口,如果是为了测试,可以打开,但如果是单纯的录音或者录音和放音(播放其他音源),就要用WM8978_Output_Cfg(0,0);关掉混频输出。但你这个打开混频输出,但只有前面几秒钟听到,后面就没有了,意思是能听到正常的声音还是就是声音音调等变了的?这个问题你得看看有没有在其他地方把混频的给关闭了,关于混频的关闭,还是有几个寄存器的,可以参考那个内部结构图看的呢,原子哥有个WM8978中文手册,我也是里面的做对照,但有几个地方手册上好像说得不对,这个得检验一下的
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2017-5-1
在线时间
7 小时
发表于 2017-5-12 15:52:28 | 显示全部楼层
lzq12 发表于 2017-5-11 15:41
WM8978_Output_Cfg(0,1);这个是指打开混频输出,就是让L2 R2的声音也跟着输出到OUT口,如果是为了测试, ...

问题解决了,谢谢!
回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-5-15 09:28:28 | 显示全部楼层
a3370 发表于 2017-5-12 15:52
问题解决了,谢谢!

那你这个混频声音不输出是什么原因呢,希望能了解一下原因和解决方法,为其他网友做个参考
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-5-26
在线时间
0 小时
发表于 2017-5-26 13:20:56 | 显示全部楼层
买了块简易的WM8978开发板 引出了I2S和I2C和SDIN,SDOUT。时序和codec相关配置好了后,往SDIN写入数据0xaaaa的时候,喇叭耳机毫无输出。用的不是STM32。
是我寄存器配置没弄好么,参考的是楼主和原子哥的.还是我的数据有问题。

另外录音和放音的概念不是很懂 ,是往SDIN写入数据然后SDOUT返回录音数据么
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-5-26
在线时间
0 小时
发表于 2017-5-26 13:21:46 | 显示全部楼层
问的问题有些菜,希望楼主帮个忙,谢谢
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-5-26
在线时间
0 小时
发表于 2017-5-26 15:35:44 | 显示全部楼层
思考一下,感觉录音就是L2 R2通过咪头输入,然后SDOUT输出吧
放音应该就是SDIN输入,然后喇叭和耳机输出吧
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-5-26
在线时间
0 小时
发表于 2017-5-26 15:43:23 | 显示全部楼层
看到原子哥放音模式下,调用了
void I2S_Play_Stop(void)
{            
        DMA_Cmd(DMA1_Stream4,DISABLE);
}
关闭了IIS时钟,这是为什么
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-5-26
在线时间
0 小时
发表于 2017-5-26 16:33:02 | 显示全部楼层
怪自己原理图没看好,1245引脚是咪头,L2 R2是麦克。
现在的问题是在放音模式下没有输出,时序和设置暂时看不出什么问题
回复 支持 反对

使用道具 举报

  离线 

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
 楼主| 发表于 2017-5-27 09:03:57 | 显示全部楼层
qiangqiang2987 发表于 2017-5-26 16:33
怪自己原理图没看好,1245引脚是咪头,L2 R2是麦克。
现在的问题是在放音模式下没有输出,时序和设置暂时 ...

WM8978的工作原理大致是,通过I2C写寄存器设置相关的寄存器来控制音源的输入及输出,比如打开L2,R2的音源输入,关闭其他音乐输入(这个主要是看实际用途),比如用函数WM8978_Input_Cfg()来选择音源输入,实际就是对寄存器44进行设置。设置好I2C之后,是设置I2S,这个其实就是单片机与WM8978之间的音频数据通信设置,也就是单片机通过I2S把数据从WM8978拿出来(即录音模式)或者把数据通过I2S传给WM8978(即播放音乐模式)。大致的过程可以总结为:上电对WM8978初始化(I2C初始化),开始使用WM8978(即准备录音或者放音时)使用I2C对寄存器设置(设置输入输出的相关寄存器),对I2S设置(设置采样率等)和I2S使用到的DMA设置(设置中断优先级和回调函数等),最后就是对音频数据的处理。对音频数据的处理在录音和播放时处理方式上可以说是互逆的。比如对音频的播放,首先是申请好需要用到的内存,然后再对WM8978设置(I2C和I2S),接下来就是在一个任务里,不断的读出音频数据(比如MP3文件),然后解码,然后把解码后的数据填充到buffer(其实就是通过DMA把数据传到WM8978),这样WM8978就能播放出声音了,此时还要做的就是对按键的检测,停止和退出等。
回复 支持 反对

使用道具 举报

  离线 

2

主题

5

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-2-8
在线时间
2 小时
发表于 2018-2-9 12:30:20 | 显示全部楼层
你好之前看到你发的wm8978的帖子,我最近也在弄,但是无论是耳机还是喇叭都没有声音,音乐播放没有声音,录音实验也没有声音,我把录下的音频用电脑打开也没有声音,不知道是不是wm8978坏了还是代码有问题,因为我没有挂载spi flash
回复 支持 反对

使用道具 举报

  离线 

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2017-3-25
在线时间
14 小时
发表于 2018-3-6 11:17:40 | 显示全部楼层
用WM8978录制的音频文件播放时只能听到“嗤嗤”的噪声,或者非常小的被录声,请指教这可能是什么原因?
回复 支持 反对

使用道具 举报

  离线 

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2017-3-25
在线时间
14 小时
发表于 2018-3-6 21:03:08 | 显示全部楼层
请问原子哥。用WM8978录制的音频文件播放时只能听到“嗤嗤”的噪声,或者非常小的被录声。但是用它来做播放器是时,效果良好,在录制的同时,耳机也能清晰地听到录制声音,但播放录制完成的文件就只有杂音。请指教这可能是什么原因?
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-7-11
在线时间
2 小时
发表于 2018-7-11 22:19:16 | 显示全部楼层
a3370 发表于 2017-5-10 17:34
成功了,用L2 R2输入,之前问题是因为麦克风的问题(白做很多无用功)
但现在又遇到个问题:

怎么搞的,求指点一下,我这里在使用F429的板子进行开发,想从line_in 进行音频输入,现在也是没有搞定,跪求解决办法
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-7-11
在线时间
2 小时
发表于 3 天前 | 显示全部楼层
您这问题三最后究竟是怎么配置的,跪求
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

"原子哥”推荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-7-20 22:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */