Thread 中讨论的其他器件: TM4C123GH6PM
工具/软件:
我初始化脉冲宽度为 0 的 PWM;一切都正常运行。 一段时间后,我改变脉冲宽度,系统继续一段时间,然后发出一个硬故障;此时 CFSR 是 0x00020000,这是“指令非法使用 EPSR。 HFAULT 寄存器是 0x40000000、这是“强制故障、请参阅其他寄存器来确定源“、但从 CFSR 中可以看出、BFSR 和 MMFSR 都是 0。 代码如下:
SysCtlClockSet (SysCtl_SYSDIV_2_5 | SysCtl_XTAL_20MHz | SysCtl_USE_PLL | SysCtl_OSC_MAIN); // 80MHz
SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOE);
SysCtlPeripheralEnable (SYSCTL_PERIPH_PWM1);
(在此处延迟一点)
GPIOPinTypePWM ( GPIO_Porte_base、PD_Pwm1_2_bit);
GPIOPinConfigure (GPIO_PE4_M1PWM2);
SysCtlPWMClockSet (SYSCTL_PWMDIV_64); // 1250KHz PWM 时钟。
PWMGenConfigure (PWM1_BASE、PWM_GEN_2、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMDeadBandDisable (PWM1_BASE、PWM_GEN_2);
PWMGenPeriodSet (PWM1_BASE、PWM_GEN_26250); // 200Hz
PWMPulseWidthSet (PWM1_BASE、PWM_GEN_2、0); // 0%占空比
PWMOutputUpdateMode (PWM1_BASE、PWM_OUT_4_BIT | PWM_OUTPUT_MODE_NO_SYNC);
PWMGenEnable (PWM1_BASE、PWM_GEN_2);
过了一段时间我发出:
PWMPulseWidthSet (PWM1_BASE、PWM_GEN_2、69); //~10%
过了一段很长的时间后出现了硬故障。
谢谢、Doug










