SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
这是一个关于嵌入式系统的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引脚配置为输出,并将其输出设置为高电平。然后,它设置了一些全局变量的初始值。接着,它初始化了模板驱动和图形上下文,并设置了前景色为白色,背景色为黑色,并选择了一个固定大小的字体。最后,它清除显示,并刷新图形上下文。
相关推荐
















