九、MCU Clock 实例中有一个控制MCU时钟的实例,CLOCK,本实验加上系统时钟看有和影响。这个实验也不复杂,实验基于测评三、的GPIO_LCD增加内容完成。 打开工程,打开main.c;同时打开文件的方式打开\CLOCK\CLOCK_AllClocksConfiguration\ Source中的main.c,不妨叫这个main.c为“Cmain.c”先观察这个的头文件,发现多了几个,我们将它拷贝到main.c的include的位置上,整个如下: #include "user_config.h" #include <stdio.h> #include "main.h" #include "board.h" #include "system_g32a1xxx.h" #include "user_clock_config.h" #include <stdbool.h> #include "g32a1xxx_int.h" #include "g32a1xxx_adc.h" #include "g32a1xxx_pins.h" #include "g32a1xxx_lpuart.h" #include "12864.h" 顺序是按照Cmain.c调整的,后来优先吗^_^。 马上报一个错#include "main.h",说明原实例中没有这个,将他从CLOCK的include文件夹中拷贝到本实例的include文件中(不考也行),但需要增加一行: #include "device.h" 那种方法都可以;为了再LCD上显示频率并且打印输出,我们设置一个全局变量: uint32_t js=0,mcuF; 将Cmain.c的void ReadConfigClockFreq(void)函数拷贝到main.c中,如下一段,这个测频相当多,适应按键我改了只区两段并且改成如下一段代码: void ReadConfigClockFreq(void){ uint32_t freq[65]; STATUS_T returnStatus = STATUS_SUCCESS; if(kk==101){ returnStatus = CLOCK_SYS_ReadFreq(HSICLK_CLK, freq+2); if (returnStatus == STATUS_SUCCESS){ printf("HSICLK_CLK Read Freq Successful \r\n"); printf("HSICLK_CLK Freq : %d \r\n", freq[2]); }else{ printf("HSICLK_CLK Read Freq Failed \r\n"); printf("STATUS_CODE : %03X",returnStatus); } mcuF=freq[2]; } if(kk==202){ returnStatus = CLOCK_SYS_ReadFreq(SYSPLL_CLK, freq+3); if (returnStatus == STATUS_SUCCESS){ printf("SYSPLL_CLK Read Freq Successful \r\n"); printf("SYSPLL_CLK Freq : %d \r\n", freq[3]); }else{ printf("SYSPLL_CLK Read Freq Failed \r\n"); printf("STATUS_CODE : %03X",returnStatus); } mcuF=freq[3]; } } 如果没有按键,为了能输出一个freq[65]的频率,在循环语句前增加: ReadConfigClockFreq(); printf("Test G32A1465 lcdDisp adc keyInt McuClock=%9d ...\r\n",mcuF); 在循环语句中增加: ReadConfigClockFreq(); 这样就可以利用按键的键值改变频率,我们只有两个:按key1键频率为48MHz,按key2键频率为112MHz。 见虚拟串口截图,和照片。
|