硬件是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()函数是否被注释掉密切相关,但是不知道具体的原因。
上述两个诡异现象很容易复现,期望沁恒的技术人员能够复现并审查引起诡异现象的原因所在。
|