SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);

时间: 2023-07-22 08:02:02 浏览: 56
这是一个关于嵌入式系统的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引脚配置为输出,并将其输出设置为高电平。然后,它设置了一些全局变量的初始值。接着,它初始化了模板驱动和图形上下文,并设置了前景色为白色,背景色为黑色,并选择了一个固定大小的字体。最后,它清除显示,并刷新图形上下文。

相关推荐

/* DriverLib Includes */ #include <ti/devices/msp432e4/driverlib/driverlib.h> /* Standard Includes */ #include <stdint.h> #include <stdbool.h> uint32_t systemClock; void PWM_init(){ TIMER2->CTL &=~TIMER_CTL_TAEN;//关闭定时器TA,以便进行相关配置 TIMER2->CFG |= TIMER_CFG_16_BIT ;//写入0x4,选择16位定时器 TIMER2->TAMR &=~TIMER_TAMR_TACMR;//清除CMR //按顺序配置为启用PWM模式,周期模式 TIMER2->TAMR |= TIMER_TAMR_TAAMS+TIMER_TAMR_TAMR_PERIOD; TIMER2->CTL &=~ TIMER_CTL_TAPWML;//默认输出状态,置1为反向输出 //输出为2KHZ方波,占空比为66%,因为系统时钟为120兆HZ。具体频率可以参考下面的写法修改。 TIMER2->TAILR =systemClock/2000; TIMER2->TAMATCHR=systemClock/6000; TIMER2->CTL |= TIMER_CTL_TAEN;//打开定时器TA //目前还不会下面三个定义,直接套用官方库函数,其次是底层定义里面没有PCTL中PCMn的相关定义 MAP_GPIOPinConfigure(GPIO_PM0_T2CCP0); MAP_GPIOPinTypeTimer(GPIO_PORTM_BASE, GPIO_PIN_0 ); MAP_TimerEnable(TIMER2_BASE, TIMER_A); } void gpio_init(){ //led_init GPION->DIR|=BIT1+BIT0;//D1,D2 light on GPION->DEN|=BIT1+BIT0; } int main(void) { //修改系统时钟为120兆HZ systemClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), 120000000); //和打开GPIO时钟一样,这里打开TIMER2时钟 SYSCTL->RCGCTIMER|=SYSCTL_RCGCTIMER_R2; while((SYSCTL->RCGCTIMER & SYSCTL_RCGCTIMER_R2) == 0){}; SYSCTL->RCGCGPIO |= SYSCTL_RCGCGPIO_R12+SYSCTL_RCGCGPIO_R11; // activate clock for Port M,N while((SYSCTL->RCGCGPIO & (SYSCTL_PRGPIO_R12+SYSCTL_RCGCGPIO_R11)) == 0){}; // wait for preparation of Port M,N PWM_init(); gpio_init(); while(1){ GPION->DATA |=BIT0;//亮一个灯证明系统正常运行 } }

最新推荐

recommend-type

华为OD机试D卷 - 用连续自然数之和来表达整数 - 免费看解析和代码.html

私信博主免费获取真题解析以及代码
recommend-type

Screenshot_2024-05-10-20-21-01-857_com.chaoxing.mobile.jpg

Screenshot_2024-05-10-20-21-01-857_com.chaoxing.mobile.jpg
recommend-type

数字图像处理|Matlab-频域增强实验-彩色图像的频域滤波.zip

数字图像处理|Matlab-频域增强实验-彩色图像的频域滤波.zip
recommend-type

2024-2030中国定向转向膜市场现状研究分析与发展前景预测报告.docx

2024-2030中国定向转向膜市场现状研究分析与发展前景预测报告
recommend-type

开源工时填报管理系统安装包

开源工时填报管理系统安装包
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

spring添加xml配置文件

1. 创建一个新的Spring配置文件,例如"applicationContext.xml"。 2. 在文件头部添加XML命名空间和schema定义,如下所示: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。