zj20115659 发表于 2015-11-16 17:14:16

NUCLEO-L476RG时钟

首先晒哈我的板子吧    以前一直没有用过STM32CubeMX;在拿到NUCLEO-L476RG后,尝试运用这个软件,在初始使用的时候需要下载对应的库;文件大小大概200M;
时钟的配置感觉直观明了:



与STM32F103不同的是APB1,APB2,AHB的最大时钟都可以设置为80MHz
对应生成的代码如下
void SystemClock_Config(void)
{

RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = 16;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLM = 1;
RCC_OscInitStruct.PLL.PLLN = 10;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
HAL_RCC_OscConfig(&RCC_OscInitStruct);

RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4);

__PWR_CLK_ENABLE();

HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

一个很奇怪的显现在数据手册的时钟树上居然找不到参数N,这个问题感觉很奇怪;
STM32CubeMX用起来确实很方便;

zj20115659 发表于 2015-11-16 17:15:20

配图怎么都跑到一堆去了呢?

沐紫 发表于 2015-11-16 17:19:49

zj20115659 发表于 2015-11-16 17:15
配图怎么都跑到一堆去了呢?

楼主上传图片之后点一下图片,就能插入到帖子中啦

creep 发表于 2015-11-16 17:51:42

这个时钟树省掉了VCO和PLLN部分,直接得出了PLL的值。

zj20115659 发表于 2015-11-16 17:56:50

沐紫 发表于 2015-11-16 17:19
楼主上传图片之后点一下图片,就能插入到帖子中啦

知道了,谢谢

dsjsjf 发表于 2015-11-16 18:48:11

谢谢分享

奋斗逼 发表于 2015-11-16 20:58:06

赞一个      :lol:lol:lol:lol
页: [1]
查看完整版本: NUCLEO-L476RG时钟