【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 利用STM32CubeMX完成STM32L053的时钟配置

共6条 1/1 1 跳转至

利用STM32CubeMX完成STM32L053的时钟配置

高工
2015-11-05 01:22:37    评分

由于板子上没有焊外部晶振,所以选择HSI(16MHZ)为时钟源通过PLL倍频。 在第一帖中http://forum.eepw.com.cn/thread/277383/1写了一个简易的代码体验了一下工程的建立。其中没有配置时钟,程序在2MHZ的时钟频率下运行。程序效果是LED灯闪烁,程序中有一段延时是这么写的:


void delay_test()
{
    uint32_t ui_delay = 0xffff;
	  while(ui_delay--);
}


现在配置时钟为32MHZ,仍然使用这个延时函数,理论上是应该闪的更快。


打开STM32CUBEMX,选择新建工程,选择型号后配置外设资源:

板子上LED2接在PA5引脚上,所以配置PA5为输出模式

再配置时钟:

生成项目:



打开项目文件夹后,进入工程文件夹,打开MDK的工程:


在main.c中添加上面提到的延时函数,在添加如下代码作为测试:


int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* System interrupt init*/
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);

  /* Initialize all configured peripherals */
  MX_GPIO_Init();

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* USER CODE BEGIN 3 */
  /* Infinite loop */
  while (1)
  {
        HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
		    delay_test();
		    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
		    delay_test();
  }
  /* USER CODE END 3 */

}


编译之后,配置好DEBUG选项,下载程序,可以看到的效果是,LED灯闪烁的肉眼看不清,几乎是一直亮着。将延时函数中ui_delay = 0xffff;修改为ui_delay = 0xfffff;才可以看到LED闪烁起来。从效果上看,时钟配置应该是有效果的。





关键词: STM32L053     时钟     配置    

院士
2015-11-05 09:01:27    评分
2楼
教程又开始了

专家
2015-11-05 13:20:10    评分
3楼
又学习了

菜鸟
2015-11-05 16:54:29    评分
4楼

围观


菜鸟
2015-12-14 22:08:23    评分
5楼
先打声招呼,我按您的做法写好代码后,通过ST-link调试,LED2完全没反应是为什么,是不是我漏设置了什么

菜鸟
2015-12-19 21:16:18    评分
6楼
学习,学习,谢谢分享

共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]