M0518 BPWM1_CH5無法使用

monkey8088 |浏览1121次
收藏|2016/11/21 12:19

使用M0518_Series_BSP_CMSIS_V3.00.002

    SYS->GPA_MFP = (SYS->GPA_MFP & ~(SYS_GPA_MFP_PA12_Msk | SYS_GPA_MFP_PA13_Msk | SYS_GPA_MFP_PA14_Msk | SYS_GPA_MFP_PA15_Msk | SYS_GPA_MFP_PA0_Msk | SYS_GPA_MFP_PA1_Msk | SYS_GPA_MFP_PA2_Msk | SYS_GPA_MFP_PA3_Msk | SYS_GPA_MFP_PA10_Msk | SYS_GPA_MFP_PA11_Msk));

    SYS->GPA_MFP |= (SYS_GPA_MFP_PA12_PWM0_CH0 | SYS_GPA_MFP_PA13_PWM0_CH1 | SYS_GPA_MFP_PA14_PWM0_CH2 | SYS_GPA_MFP_PA15_PWM0_CH3 | SYS_GPA_MFP_PA0_PWM0_CH4 | SYS_GPA_MFP_PA1_PWM0_CH5 | SYS_GPA_MFP_PA2_PWM1_CH0 | SYS_GPA_MFP_PA3_PWM1_CH1 | SYS_GPA_MFP_PA10_PWM1_CH2 | SYS_GPA_MFP_PA11_PWM1_CH3);

SYS->GPB_MFP = (SYS->GPB_MFP & ~(SYS_GPB_MFP_PB8_Msk | SYS_GPB_MFP_PB12_Msk | SYS_GPB_MFP_PB15_Msk));

    SYS->GPB_MFP |= (SYS_GPB_MFP_PB8_BPWM1_CH2 | SYS_GPB_MFP_PB12_BPWM1_CH3 | SYS_GPB_MFP_PB15_BPWM1_CH5);

SYS->GPC_MFP = (SYS->GPC_MFP & ~(SYS_GPC_MFP_PC0_Msk | SYS_GPC_MFP_PC1_Msk | SYS_GPC_MFP_PC2_Msk | SYS_GPC_MFP_PC3_Msk));

    SYS->GPC_MFP |= (SYS_GPC_MFP_PC0_BPWM0_CH0 | SYS_GPC_MFP_PC1_BPWM0_CH1 | SYS_GPC_MFP_PC2_BPWM0_CH2 | SYS_GPC_MFP_PC3_BPWM0_CH3);

SYS->GPD_MFP = (SYS->GPD_MFP & ~(SYS_GPD_MFP_PD15_Msk | SYS_GPD_MFP_PD14_Msk | SYS_GPD_MFP_PD7_Msk | SYS_GPD_MFP_PD6_Msk | SYS_GPA_MFP_PA0_Msk | SYS_GPA_MFP_PA1_Msk));

    SYS->GPD_MFP |= (SYS_GPD_MFP_PD15_BPWM0_CH4 | SYS_GPD_MFP_PD14_BPWM0_CH5 | SYS_GPD_MFP_PD7_BPWM1_CH0 | SYS_GPD_MFP_PD6_BPWM1_CH1 | SYS_GPA_MFP_PA0_PWM0_CH4 | SYS_GPA_MFP_PA1_PWM0_CH5);

    

SYS->GPF_MFP = (SYS->GPF_MFP & ~(SYS_GPF_MFP_PF4_Msk | SYS_GPF_MFP_PF5_Msk | SYS_GPF_MFP_PF8_Msk));

    SYS->GPF_MFP |= (SYS_GPF_MFP_PF4_PWM1_CH4 | SYS_GPF_MFP_PF5_PWM1_CH5 | SYS_GPF_MFP_PF8_BPWM1_CH4);

SYS->ALT_MFP3 &= ~(SYS_ALT_MFP3_PA12_Msk | SYS_ALT_MFP3_PA13_Msk | SYS_ALT_MFP3_PA14_Msk | SYS_ALT_MFP3_PA15_Msk | SYS_ALT_MFP3_PA0_Msk | SYS_ALT_MFP3_PA1_Msk);

    SYS->ALT_MFP3 |= (SYS_ALT_MFP3_PA12_PWM0_CH0 | SYS_ALT_MFP3_PA13_PWM0_CH1 |  SYS_ALT_MFP3_PA14_PWM0_CH2 |  SYS_ALT_MFP3_PA15_PWM0_CH3 |  SYS_ALT_MFP3_PA0_PWM0_CH4 |  SYS_ALT_MFP3_PA1_PWM0_CH5);

    

SYS->ALT_MFP3 &= ~(SYS_ALT_MFP3_PA2_Msk | SYS_ALT_MFP3_PA3_Msk | SYS_ALT_MFP3_PA10_Msk | SYS_ALT_MFP3_PA11_Msk | SYS_ALT_MFP3_PF4_Msk | SYS_ALT_MFP3_PF5_Msk);

    SYS->ALT_MFP3 |= (SYS_ALT_MFP3_PA2_PWM1_CH0 | SYS_ALT_MFP3_PA3_PWM1_CH1 |  SYS_ALT_MFP3_PA10_PWM1_CH2 |  SYS_ALT_MFP3_PA11_PWM1_CH3 |  SYS_ALT_MFP3_PF4_PWM1_CH4 |  SYS_ALT_MFP3_PF5_PWM1_CH5);


SYS->ALT_MFP3 &= ~(SYS_ALT_MFP3_PC0_Msk | SYS_ALT_MFP3_PC1_Msk | SYS_ALT_MFP3_PC2_Msk | SYS_ALT_MFP3_PC3_Msk | SYS_ALT_MFP3_PD15_Msk | SYS_ALT_MFP3_PD14_Msk);

    SYS->ALT_MFP3 |= (SYS_ALT_MFP3_PC0_BPWM0_CH0 | SYS_ALT_MFP3_PC1_BPWM0_CH1 |  SYS_ALT_MFP3_PC2_BPWM0_CH2 |  SYS_ALT_MFP3_PC3_BPWM0_CH3 |  SYS_ALT_MFP3_PD15_BPWM0_CH4 |  SYS_ALT_MFP3_PD14_BPWM0_CH5);

SYS->ALT_MFP3 &= ~(SYS_ALT_MFP3_PD7_Msk |  SYS_ALT_MFP3_PD6_Msk |  SYS_ALT_MFP3_PB8_Msk |  SYS_ALT_MFP3_PB12_Msk |  SYS_ALT_MFP3_PF8_Msk | SYS_ALT_MFP3_PB15_Msk);

    SYS->ALT_MFP3 |= (SYS_ALT_MFP3_PD7_BPWM1_CH0 | SYS_ALT_MFP3_PD6_BPWM1_CH1 |  SYS_ALT_MFP3_PB8_BPWM1_CH2 |  SYS_ALT_MFP3_PB12_BPWM1_CH3 |  SYS_ALT_MFP3_PF8_BPWM1_CH4 | SYS_ALT_MFP3_PB15_BPWM1_CH5);

可以正常使用其他23組pwm,唯獨BPWM1_CH5輸出高電位

满意回答

2022/09/06 14:55

检查一下这个通道的多功能管脚是否正确,进入debug看下,用pinview工具看一下这个通道的寄存器配置和其他通道有什么区别,看下寄存器的值是否正确

pinview工具可以在https://github.com/OpenNuvoton/Nuvoton_Tools 下载

chenwenbin

其他回答(0)
0人关注该问题
+1
 加载中...