SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
时间: 2023-07-22 17:02:02 浏览: 206
这是一个关于嵌入式系统的IT类问题。这行代码是用来设置系统时钟的,具体含义如下:
`SysCtlClockSet`:这是一个函数,用于设置系统时钟。
`SYSCTL_SYSDIV_1`:这是一个宏定义,表示将系统时钟分频为1,即不分频。
`SYSCTL_USE_OSC`:这是一个宏定义,表示使用外部振荡器作为系统时钟源。
`SYSCTL_OSC_MAIN`:这是一个宏定义,表示使用主振荡器作为外部振荡器。
`SYSCTL_XTAL_8MHZ`:这是一个宏定义,表示使用8MHz的晶体振荡器作为主振荡器的输入。
通过以上代码,系统将被配置为使用8MHz的晶体振荡器作为主时钟源,并且不进行分频。
相关问题
void System_init() { SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ| SYSCTL_OSC_MAIN); SystemClock=SysCtlClockGet(); Key_init(); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); MAP_GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_2); MAP_GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_2,GPIO_PIN_2); ui8Flush_Flag=FLUSH_ON; Template_DriverInit(); GrContextInit(&g_sContext, &g_sTemplate_Driver); GrContextForegroundSet(&g_sContext, ClrWhite); GrContextBackgroundSet(&g_sContext, ClrBlack); GrContextFontSet(&g_sContext, &g_sFontFixed6x8); GrClearDisplay(&g_sContext); GrFlush(&g_sContext); // IntMasterEnable(); }
这段代码是用于初始化系统的函数。首先,它调用`SysCtlClockSet()`函数设置系统时钟,将系统时钟分频为4,使用PLL作为时钟源,并设置外部晶体振荡器频率为16MHz,使用主时钟源。然后,它调用`SysCtlClockGet()`函数获取系统时钟的频率并将其保存到`SystemClock`变量中。接下来,它调用`Key_init()`函数初始化按键功能。然后,它调用`MAP_SysCtlPeripheralEnable()`函数使能GPIOB端口,并调用`MAP_GPIOPinTypeGPIOOutput()`函数将GPIOB的第2引脚配置为输出模式。接着,它调用`MAP_GPIOPinWrite()`函数将GPIOB的第2引脚输出设置为高电平。
接下来,它将`ui8Flush_Flag`变量设置为`FLUSH_ON`。然后,它调用`Template_DriverInit()`函数进行模板驱动的初始化。接着,它调用`GrContextInit()`函数初始化图形上下文,并将其与模板驱动关联起来。然后,它调用`GrContextForegroundSet()`函数设置图形上下文的前景色为白色,调用`GrContextBackgroundSet()`函数设置图形上下文的背景色为黑色。接下来,它调用`GrContextFontSet()`函数设置图形上下文的字体为固定大小的6x8字体。然后,它调用`GrClearDisplay()`函数清除显示,并调用`GrFlush()`函数刷新图形上下文。
最后,注释掉了`IntMasterEnable()`函数的调用。这个函数可能是用来使能中断的,但在这段代码中被注释掉了。
void System_init() { SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ| SYSCTL_OSC_MAIN); SystemClock=SysCtlClockGet(); Key_init(); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); MAP_GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_2); MAP_GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_2,GPIO_PIN_2); ui8Flush_Flag=FLUSH_ON; Template_DriverInit(); GrContextInit(&g_sContext, &g_sTemplate_Driver); GrContextForegroundSet(&g_sContext, ClrWhite); GrContextBackgroundSet(&g_sContext, ClrBlack); GrContextFontSet(&g_sContext, &g_sFontFixed6x8); GrClearDisplay(&g_sContext); GrFlush(&g_sContext); // IntMasterEnable(); }
这段代码是用于初始化系统的函数。首先,它设置了系统时钟,将系统时钟分频为4,使用PLL作为时钟源,并设置了外部晶体振荡器频率为16MHz。然后,它获取并保存了系统时钟的频率。接下来,它初始化了按键,并使能了GPIOB端口。然后,它将GPIOB的第2引脚配置为输出,并将其输出设置为高电平。然后,它设置了一些全局变量的初始值。接着,它初始化了模板驱动和图形上下文,并设置了前景色为白色,背景色为黑色,并选择了一个固定大小的字体。最后,它清除显示,并刷新图形上下文。
阅读全文