CH32V003 IO口复用问题

image.png

如上图所示,我使用哦OPA0(PA1 PA2 PD4)和定时器1(PC4 PC5 PC7) 定时器端口完全重映射

image.png



现在遇到的问题是:

  1. 屏蔽定时器相关的代码,只使用OPA作为比较器,则OPA的输出波形正常

  2. 打开定时器相关代码(T1CH1/2/3 PWM输出,无T1CH4),则OPA的输出(PD4)只有200mV左右


我检查代码发现定时器初始化的时候并没有配置PD4,也没有配置通道4,为啥定时器会影响比较器呢? 请问端口复用的逻辑是啥?


你好,经测试并未发现该问题,可根据附件例程排查下,注意PA1-PA2为晶振功能脚,用作别的功能需程序里里选择内部时钟,后续若还有问题,可邮箱(yrl@wch.cn)与我沟通。image.pngc61944f71b168ee3f3d95feae11c563.jpg

icon_rar.gifOPA_TEST.zip



看了你的代码 TIM1用到的端口没有做重映射 (PC4 PC5 PC7 上是没有PWM波形输出的吧? 


三个通道都是配置好有信号的,重映射在另一个函数中。

image.png


恩 对比了下差异,我初始化了PD4 把这个屏蔽就可以了 

//    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_4;
//    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_OD;
//    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//    GPIO_Init(GPIOD, &GPIO_InitStructure);



只有登录才能回复,可以选择微信账号登录