您好!
我在控制时钟速度时遇到问题。 时钟的工作速度比我希望的快4倍。 例如、在下面的代码中、我希望 LED 亮起1秒、然后熄灭1秒、但它会在第二秒中亮起和熄灭两次。 时钟速度为16MHz、我已经使用了 SYSCTL_SYSDIV_64、因此 应该将时钟速度降低到250kHz;所以如果我说 SysCtlDelay (250000)、我不应该得到1秒、因为每秒有250000个特性? 我在使用 PWM 和其他功能时面临同样的问题。 感谢您的帮助和提前感谢。
int main (空)
{
SysCtlClockSet (SYSCTL_SYSDIV_64|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
HWREG (GPIO_PORTF_BASE + GPIO_LOCK)= GPIO_LOCK_KEY;
HWREG (GPIO_PORTF_BASE + GPIO_CR)|= 0x01;
HWREG (GPIO_PORTF_BASE + GPIO_O_LOCK)= 0;
GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_0|GPIO_PIN_1);
while (1)
{
//打开 LED
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_0|GPIO_PIN_1、0xFF);
//延迟一位
SysCtlDelay (250000);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_0|GPIO_PIN_1、0x00);
//延迟一位
SysCtlDelay (250000);
}
}