woshi_ziyu
发表于: 2015-11-12 21:04:23 | 显示全部楼层

STM32的MCU在启动时,只用正确进行了硬件配置才能正常工作。ST提供了一个专门生成初识化代码的工具STM32CubeMX。通过使用这个工具使得我们不必花费太多的时间用于进行MCU底层硬件的配置,而是关注于应用的开发。下面就以NUCLEO-L476RG开发板为例,简单地介绍一下如何使用STM32CubeMX生成初始化代码,建立Led闪烁的工程,并使用STM32 ST-LINK Utility工具将生成的二进制文件下载到开发板上。

首先启动STM32CubeMX,新建一个工程,在开发板类型选择Nucleo64,MCU系列选择STM32L4。然后在外设选择的列表中led和Button添加1,开发板选择中选中NUCLEO-L476RG。

new project.jpg

点击“OK”。STM32CubeMX将会显示目标MCU以及它的配置信息,包括引脚分布、时钟配置及功耗计算器。

007.jpg

配置信息采用默认的配置。然后产生Keil工程的代码。注意:这个过程需要PC安装有最新版本的STM32CubeL4。

wer.jpg

打开工程,在main.c函数添加LED LD2相关的初始化信息以及设置LD2闪烁。代码如下:

  1. /* -1- Enable each GPIO Clock (to be able to program the configuration registers) */
  2.   LED2_GPIO_CLK_ENABLE();

  3.   /* -2- Configure IOs in output push-pull mode to drive external LEDs */
  4.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  5.   GPIO_InitStruct.Pull  = GPIO_PULLUP;
  6.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;

  7.   GPIO_InitStruct.Pin = LED2_PIN;
  8.   HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct);

  9.   /* -3- Toggle IOs in an infinite loop */
  10.   while (1)
  11.   {
  12.     HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
  13.     /* Insert delay 100 ms */
  14.     HAL_Delay(100);
  15.   }
复制代码

将NUCLEO-L476RG连接至PC,使用ST-LINK下载程序到NUCLEO-L476RG。LD2灯开始闪烁。




跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 49 | 回复: 80



手机版|

GMT+8, 2024-12-23 21:47 , Processed in 0.035511 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表