OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 57888|回复: 36

OCX和OCXREF究竟是什么关系

[复制链接]

3

主题

4

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2010-12-24
在线时间
4 小时
发表于 2010-12-24 23:30:04 | 显示全部楼层 |阅读模式
大家好:
     请问OCX和OCXREF究竟是什么关系?   
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2010-12-25 00:23:27 | 显示全部楼层
        在《STM32参考手册》V10的第266页,图123和图124之间有这么一句话:输出部分产生一个中间波形OCxRef(高有效)作为基准,链的末端决定最终输出信号的极性。
        然后,我们在266页还可以看到图125的通道输出部分框图,如下图所示:

        从图中可以看出,OCxREF其实就是OCx输出的中间状态,这里最后那个输出使能电路比较好理解,其实就是通过CCxE来控制的一个开关。我们要是能使出PWM之类的波形,则必须使能CCxE位的。但是CC1P这里不是很好理解,尤其是这个图,看起来怪怪的,像个加法器。我们再从《参考手册》的第292页找到这个图:


        上图告诉我们CCxP是用来控制极性的,默认设置(复位后)为0,也就是高电平有效,而如果设置该位,则为低电平有效。通过实验我发现,这里的有效电平,其实就是在PWM输出的有效电平(匹配时的电平),比如我设置PWM某个时候的比较值为0,此时PWM会输出100%占空比的有效电平,此时,我们可以看到OCx输出是一个固定的电平,这个电平,其实就是你设置的CC1P的状态。当设置OCxP的值为0的时候,100%占空比输出是高电平,当设置OCxP为1的时候,100%占空比输出是低电平。从而控制了输出极性。
        在开发板的实验8上稍作修改得到仿真代码,仅仅修改了main函数,如下:
//Mini STM32开发板扩展实例 7
//PWM输出 实验
//正点原子@ALIENTEK
//2010.12.25 
  

int main(void)
{    
  Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化
 uart_init(72,9600);  //串口初始化
 LED_Init();      //初始化与LED连接的硬件接口
 WM_Init(90,0);  //不分频。PWM频率=72000/900=8Khz
    //可以通过注释:TIM3->CCER|=1<<5;这句,来观看结果,此结果完全软件仿真即可看到。
 //在波形观察里面新建一个PORTA.7的信号,就能看到修改TIM3->CCER第5位的值产生的结果了。
 while(1)
 { 
  TIM3->CCER|=1<<5;   //低电平有效      
   delay_ms(10);          
  LED0_PWM_VAL=45;   
   delay_ms(10); 
   LED0_PWM_VAL=0;  
  delay_ms(10); 
  LED0_PWM_VAL=45;   
  delay_ms(10); 
   LED0_PWM_VAL=0;   
  TIM3->CCER&=~(1<<5);//高电平有效       
   delay_ms(10);          
  LED0_PWM_VAL=45;   
   delay_ms(10); 
   LED0_PWM_VAL=0;  
  delay_ms(10); 
  LED0_PWM_VAL=45;   
  delay_ms(10); 
   LED0_PWM_VAL=0; 
 } 
}
        仿真结果如下:




 

 






我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 2 反对 0

使用道具 举报

7

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2011-1-15
在线时间
0 小时
发表于 2011-1-15 19:04:00 | 显示全部楼层
不错,常来看看
回复 支持 反对

使用道具 举报

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2010-12-21
在线时间
0 小时
发表于 2011-3-16 15:15:34 | 显示全部楼层
回复【2楼】正点原子:
-------------------------------    

“当设置OCxP的值为0的时候,100%占空比输出是高电平,当设置OCxP为1的时候,100%占空比输出是低电平。从而控制了输出极性。”,

就是匹配时,OCx的输出电平就等于设置的OCxP的电平,对吧?

还有那个)OCxREF  到底什么用呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-3-16 15:20:58 | 显示全部楼层
回复【4楼】cybrian:
-------------------------------
OCxREF是个参考值,你没看到后面的图有个反向控制么?由TIMx_CCER->CC1P控制.
假设:
比如REF是1,CC1P设置为0,在OC1输出是1
而REF是0,CC1P设置为0,在OC1输出是0.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2011-4-20
在线时间
0 小时
发表于 2011-5-7 19:04:54 | 显示全部楼层
回复【5楼】正点原子:
-------------------------------
原子哥。。实验8PWM输出中:TIM2->CCMR1|=7<<4;  //CH1 WM2模式,TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平
                           TIM2->CCER|=1<<0;   //高电平有效,OC1输出使能,OC1信号输出到对应的输出引脚
                           //当TIM2->CCR1由0到300,灯由暗变亮

         我修改成:TIM2->CCMR1|=7<<4;  //CH1 WM2模式,TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平
                  TIM2->CCER|=3<<0;   //低电平有效, 
                  //按照原理应该是当TIM2->CCR1由0到300,灯由亮变暗
                  //但实际情况确是:一直很亮。。
有点迷惑。。。
十分迷惑。。。
相当迷惑。。。 
人生苦短,及时行乐!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-8 01:55:28 | 显示全部楼层
回复【6楼】RR子海:
-------------------------------
你先仿真下吧.
提示:看看占空比.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2011-4-20
在线时间
0 小时
发表于 2011-5-9 10:45:11 | 显示全部楼层
回复【7楼】正点原子:
-------------------------------
仿真过了。。一直处于低电平。
人生苦短,及时行乐!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-9 11:03:24 | 显示全部楼层
回复【8楼】RR子海:
-------------------------------
那肯定你其他地方弄错了。
你修改为TIM2,注意所有的其他相关配置都要修改为TIM2的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2011-4-20
在线时间
0 小时
发表于 2011-5-9 11:07:40 | 显示全部楼层
回复【9楼】正点原子:
-------------------------------
我修改成TIM2后上面第一个由暗到亮,是可以的啊。。就改了“TIM2->CCER|=3<<0;   //低电平有效”这句,想变成由亮到暗,然后就不行了。。
人生苦短,及时行乐!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-9 12:39:01 | 显示全部楼层
应该不会的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-9 12:41:15 | 显示全部楼层
我用TIM3都可以,你也可以试试我那个例子,仿真下。你用TIM2也不会有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2011-4-20
在线时间
0 小时
发表于 2011-5-9 15:36:13 | 显示全部楼层
回复【12楼】正点原子:
-------------------------------
搞定了。。准备发个帖。。分享一下这PWM的设置问题。。有点味道滴~~
人生苦短,及时行乐!!
回复 支持 反对

使用道具 举报

37

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2011-7-25
在线时间
31 小时
发表于 2011-8-9 09:42:42 | 显示全部楼层
请问在哪设置而且怎么设置才有PWM的仿真图看到呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-8-9 09:44:59 | 显示全部楼层
看不完全手册.开头教你如何做第一个工程的时候就有介绍,如何查看仿真IO的电平.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

37

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2011-7-25
在线时间
31 小时
发表于 2011-8-10 09:49:02 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
原子大哥,能不能详细说下那个设置啊?不会设置啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-8-10 10:24:18 | 显示全部楼层
那个,我不知道是哪个。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-2-26
在线时间
0 小时
发表于 2012-3-24 14:48:35 | 显示全部楼层
回复【13楼】RR子海:
---------------------------------
我也出现了和你一样的问题,可以发PWM设置那部分代码参考一下嘛?感激,,,
他山之石,可以攻玉.
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-12-2
在线时间
0 小时
发表于 2013-5-4 14:42:42 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
原子哥 互补输出的OCxN 占空比是和OCx一样吗?
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-5-4 15:06:42 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
你这示波器高级
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-4 21:20:23 | 显示全部楼层
回复【20楼】Tardis:
---------------------------------
这是软件仿真...没用示波器哦。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-5-6 08:20:11 | 显示全部楼层
回复【21楼】正点原子:
---------------------------------
哦,这样子?以为你用模拟示波器
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

31

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2010-12-14
在线时间
5 小时
发表于 2013-6-3 18:03:33 | 显示全部楼层
关于CCP1和REF电平之间的关系终于有点明白了,但是不确定理解的对不对,如果对了可以供和我一样的初学者参考,如果不对还请谅解。 
  
 计数模式为向上:
 WM1:CNT<CCR1 ----->参考电平为(REF=1), 反之参考电平(REF=0) 
 WM1:CNT<CCR1 ----->参考电平为(REF=1), 反之参考电平(REF=0)

/********************************************************************/
用MDK的仿真得到的结果:
                            REF              CC1P 

                WM1:     1                LOW      ==>输出为低电平
                             0                LOW      ==> 输出为高电平     
                             1                High      ==> 输出为高电平
                             0                High      ==> 输出为低电平 

PWM2与PWM1相同(相同的CCR1),REF应该是相反的。

我的理解:CC1P与REF相同则输出为1,反之输出为0
/********************************************************************/

在PWM实验中,PWM2,CC1P = High
CNT = 900;  CCR1 = 0-300;
若CCR1 = 0;则参考为REF = 1; High ==》输出高电平,小灯熄灭状态。
若CCR1 = 300,有1/3占空比的REF = 0;小灯的亮度为不接PWM时亮度的1/3.
由于是0-300之间的变化,呈现呼吸灯的状态。


若讲High调整为Low,看到的现象时从1/3的亮度---->全亮。

***********************************END*********************************
如果有解释不正确的地方,还希望大家能指出。
回复 支持 反对

使用道具 举报

31

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2010-12-14
在线时间
5 小时
发表于 2013-6-3 18:20:21 | 显示全部楼层
于CCP1和REF电平之间的关系终于有点明白了,但是不确定理解的对不对,如果对了可以供和我一样的初学者参考,如果不对还请谅解。 
  
 计数模式为向上:
 WM1:CNT<CCR1 ----->参考电平为(REF=1), 反之参考电平(REF=0) 
 WM1:CNT<CCR1 ----->参考电平为(REF=1), 反之参考电平(REF=0)

/********************************************************************/
用MDK的仿真得到的结果:
                            REF              CC1P 

                WM1:     1                LOW      ==>输出为低电平
                             0                LOW      ==> 输出为高电平     
                             1                High      ==> 输出为高电平
                             0                High      ==> 输出为低电平 

PWM2与PWM1相同(相同的CCR1),REF应该是相反的。

我的理解:CC1P与REF相同则输出为1,反之输出为0
/********************************************************************/

在PWM实验中,PWM2,CC1P = High
CNT = 900;  CCR1 = 0-300;
若CCR1 = 0;则参考为REF = 1; High ==》输出高电平,小灯熄灭状态。
若CCR1 = 300,有1/3占空比的REF = 0;小灯的亮度为不接PWM时亮度的1/3.
由于是0-300之间的变化,呈现呼吸灯的状态。


若讲High调整为Low,看到的现象时从1/3的亮度---->全亮。

***********************************END*********************************
如果有解释不正确的地方,还希望大家能指出。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-6 16:50:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-9-29
在线时间
0 小时
发表于 2013-9-30 14:27:35 | 显示全部楼层
回复【13楼】RR子海:
---------------------------------
怎么搞定的啊 请问
回复 支持 反对

使用道具 举报

10

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2013-10-20
在线时间
0 小时
发表于 2013-11-5 16:22:25 | 显示全部楼层
回复【13楼】RR子海:
回复【12楼】正点原子: ------------------------------- 搞定了。。准备发个帖。。分享一下这PWM的设置问题。。有点味道滴~~
---------------------------------
支持LZ早点发帖教教我们
求学不怕苦才能坚持到彼岸
回复 支持 反对

使用道具 举报

69

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2014-6-21
在线时间
0 小时
发表于 2014-8-10 09:46:18 | 显示全部楼层
回复【24楼】shilang0304:
---------------------------------
high调整为low,应该是从2/3的亮度到全亮吧?
回复 支持 反对

使用道具 举报

4

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-7-27
在线时间
3 小时
发表于 2014-10-7 22:31:00 | 显示全部楼层
我想用两句话总结1:TIM输出比较极性高情况下,计数器CNT<CCRX时输出低电平;
                         2:TIM输出比较极性低情况下,计数器CNT><CCRX时输出高电平;>
回复 支持 反对

使用道具 举报

4

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-7-27
在线时间
3 小时
发表于 2014-10-7 22:32:12 | 显示全部楼层
更正下上面的,着急打错了
我想用两句话总结1:TIM输出比较极性高情况下,计数器CNT<CCRX时输出低电平; 
                         2:TIM输出比较极性低情况下,计数器CNT><CCRX时输出高电平;>
回复 支持 反对

使用道具 举报

4

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-7-27
在线时间
3 小时
发表于 2014-10-7 22:32:50 | 显示全部楼层
我想用两句话总结1:TIM输出比较极性高情况下,计数器CNT<CCRX时输出低电平;2:TIM输出比较极性低情况下,计数器CNT><CCRX时输出高电平;>
回复 支持 反对

使用道具 举报

4

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-7-27
在线时间
3 小时
发表于 2014-10-7 22:33:58 | 显示全部楼层
2:TIM输出比较极性低情况下,计数器CNT<CCRX时输出高电平>
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2015-4-20
在线时间
0 小时
发表于 2015-6-15 09:38:00 | 显示全部楼层
你们看图  CCxP=1;

OCxREF=1, 则OCX=0;
OCxREF=0, 则OCX=1; 为什么你们说的都相反呢?
QQ截图20150615093509.png
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-2-16
在线时间
5 小时
发表于 2015-12-2 10:56:10 | 显示全部楼层
CCxP = 0;
OCxREF=0, 则OCX=1;
OCxREF=1, 则OCX=0; 

CCxP = 1;
OCxREF=0, 则OCX=0;
OCxREF=1, 则OCX=1;
回复 支持 反对

使用道具 举报

12

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2014-9-13
在线时间
31 小时
发表于 2017-3-5 22:22:47 | 显示全部楼层
想请问原子哥,TIM_ForcedOC1Config这个函数对应的是不是TIM_OCInitTypeDef结构体中TIM_OCPolarity这个的取值?
回复 支持 反对

使用道具 举报

12

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2014-9-13
在线时间
31 小时
发表于 2017-3-5 22:23:06 | 显示全部楼层
正点原子 发表于 2011-8-9 09:44
看不完全手册.开头教你如何做第一个工程的时候就有介绍,如何查看仿真IO的电平.

想请问原子哥,TIM_ForcedOC1Config这个函数对应的是不是TIM_OCInitTypeDef结构体中TIM_OCPolarity这个的取值?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-2-20
在线时间
2 小时
发表于 2019-2-20 15:00:32 | 显示全部楼层

陈年老贴。。。
我用的“ALIENTEK MiniSTM32 V3.0”中的库,改变 TIM_OCInitTypeDef 结构中的 .TIM_OCPolarity 成员对于实际输出的极性没有影响(用示波器看了);而直接操作其寄存器则能有效改变输出极性
不知道是不是这个库有问题,还是我写的函数哪里不对,附上这段程序的代码

/**************************************************************************************/
#define CapturePeriod_TIM2 ...
#define CapturePulse_TIM2  ...
...

/* TIM基本参数 */
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct = {
                .TIM_ClockDivision = TIM_CKD_DIV1,
                .TIM_CounterMode = TIM_CounterMode_Up,
                .TIM_Period = CapturePeriod_TIM2 - 1,               
                .TIM_Prescaler = 0,                                 
        };
        TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);

/* TIM输出参数 */
        TIM_OCInitTypeDef TIM_OCInitStruct = {
                .TIM_OCMode = TIM_OCMode_PWM2,                       
                .TIM_OutputState = TIM_OutputState_Enable,            //使能输出通道
                .TIM_Pulse = CapturePulse_TIM2,                              //翻转周期
                .TIM_OCPolarity = TIM_OCNPolarity_High,                  //翻转有效的极性,TIMx_CCER寄存器中的CCxP位
        };
        TIM_OC3Init(TIM2, &TIM_OCInitStruct);                             //TIM2_CH3(PA2)
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 16:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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