我寫了簡單的 Test Code 由 sample code(Smpl_Basic01_PWMDAC)改的 , 但 IO pin (PWM0) 卻一直沒有輸出, 什麼地方錯了 ???
Thanks !!!
main()
{
SYS_Init();
CLK_SetModuleClock( PWM01_MODULE, CLK_CLKSEL1_PWM01_S_HIRC, 0);
CLK_EnableModuleClock( PWM01_MODULE );
SYS->GPA_MFP = SYS_GPA_MFP_PA12_PWM0;
PWM_ConfigOutputChannel( PWMA,0,1000000,50 );
PWM_SET_DIVIDER( PWMA, 0, PWM_CLK_DIV_1 );
PWM_SET_PRESCALER( PWMA, 1, 0 );
PWM_SET_CNR(PWMA, 0, 120);
PWM_SET_CMR(PWMA, 0, 60);
PWM_Start(PWMA, 0x01);
PWM_EnableOutput(PWMA, 0x01);
GPIO_SetMode(PB, 4, GPIO_PMD_OUTPUT); //LED1
while(1)
{
PB4 ^= 1;
PWM_SET_CMR(PWMA, 0, 60);
};
}
2022/09/06 14:12
建议你先测试新唐BSP软件包中的PWM例程,然后再例程基础上,一步步改成你想要的功能。
也可以按以下步骤排查:
1,用Debug时打开PinView 查看引脚功能配置是否正确
2,看CLK寄存器组里PWM时钟是否使能。
3,然后看PWM 寄存器是否按代码中变化,相应的PWM 通道是否使能。
3,在Debug 状态,若发现哪个寄存器值不对,可即时修改。