wgtwgtwgt 发表于 2022-4-8 18:16

CH32V103 PWM输出的诡异现象

硬件是WCH-Link和CH32V103C8T6评估板,用WCH-Link给评估板供电并下载程序:

评估板没有接任何额外的东西。

诡异现象一:
在例程:八、CH32V103应用教程——PWM输出 - RISC-V技术及应用论坛,开源指令集架构(ISA)论坛 - 21ic电子技术开**坛
的main()函数里,修改为:
int main(void)
{
      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
      Delay_Init();
      USART_Printf_Init(115200);
      printf("SystemClk:%d\r\n", SystemCoreClock);

      printf("This is printf example\r\n");

      TIM1_PWMOut_Init(4999,7199,200);
      while(1)
      {
      }
}其余什么也不变,编译下载后,LED灯不会闪烁,将WCH-Link从电脑的USB口拔掉再插上或者按Reset键也不管用。
但是只需将:
printf("This is printf example\r\n");
注释掉,LED灯就正常闪烁了。将WCH-Link拔掉再插上,LED灯也能正常闪烁。

诡异现象二:
将上述main()函数中的两个printf()函数都注释掉,编译下载后,这时,LED灯正常闪烁。但是若拔掉WCH-Link再插上,也就是给评估板重新供电,LED灯就不会闪烁了。只有将第一个printf取消注释,编译下载后,LED灯才恢复闪烁。

查了一天,只查到跟printf()函数是否被注释掉密切相关,但是不知道具体的原因。
上述两个诡异现象很容易复现,期望沁恒的技术人员能够复现并审查引起诡异现象的原因所在。

xdqfc 发表于 2022-4-9 11:04

本帖最后由 xdqfc 于 2022-4-9 11:05 编辑

Print用的PA9跟PA10也是PWM端口吧,串口的初始化看一下吧。之前曾经遇到过的。

wgtwgtwgt 发表于 2022-4-9 13:16

xdqfc 发表于 2022-4-9 11:04
Print用的PA9跟PA10也是PWM端口吧,串口的初始化看一下吧。之前曾经遇到过的。
...

谢谢回复。

PA8是TIM1_CH1通道,该引脚也跟USART1_CK功能复用了,MRS默认创建的工程模板使用串口1打印,TIM1_CH1和USART1_CK可能相互干扰了。
使用TIM2_CH1通道,也就是将PA0引脚接到LED1上,修改一下代码,编译并下载后,不存在上面描述的诡异现象了。

这似乎暗示,若使用串口1打印信息,最好不要使用TIM1。反之,若使用TIM1,最好也不要使用串口1。

RISCVLAR 发表于 2022-4-10 11:50

您好,我这边到时候复现测试下给你反馈。

RISCVLAR 发表于 2022-4-11 13:59

附件为我的测试例程,按你所述测试没有问题,你可以下载附件例程测试一下,注意程序中结构体初始化时赋值0,具体见附件例程。

wgtwgtwgt 发表于 2022-4-11 14:57

本帖最后由 wgtwgtwgt 于 2022-4-11 15:27 编辑

RISCVLAR 发表于 2022-4-11 13:59
附件为我的测试例程,按你所述测试没有问题,你可以下载附件例程测试一下,注意程序中结构体初始化时赋值0 ...
感谢回复。
看到您将结构体进行初始化,明白了问题出在是否初始化结构体:在pwm.c文件中,若定义结构体时不进行初始化赋值,即:
    GPIO_InitTypeDef GPIO_InitStructure;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
    TIM_OCInitTypeDef TIM_OCInitStructure;就会出现上述不正常现象。
若定义结构体时进行初始化赋值,即:
    GPIO_InitTypeDef GPIO_InitStructure={0};
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure={0};
    TIM_OCInitTypeDef TIM_OCInitStructure={0};则上述不正常现象消失了。


xdqfc 发表于 2022-4-12 10:28

还有这么一出。{:lol:}{:lol:}

sunny阳光 发表于 2022-4-29 10:33

按楼主说的,自己跑了一遍,没发现问题啊。
页: [1]
查看完整版本: CH32V103 PWM输出的诡异现象