woshi_ziyu
发表于: 2015-12-2 21:24:08 | 显示全部楼层

当拿到开发板后,我一般做的第一件事就是通上电,运行开发板板载的演示程序,然后就想试试在开发板上写个简单的程序。在这篇文章中,我将简单介绍一下搭建Keil的编译开发环境,建立一个按钮控制LED的简单例程,并下载到开发板上。

开发环境需要安装有STM32Cube_FW_L4_V1.1.1和ST-Link V2-1的驱动程序,这两个工具可以在ST的官网下载。


首先打开Keil UVision软件,点击工具栏的Pack Installer图标,安装STM32L4xx_DFP设备支持包。

完成后,转到Project->New uVision Project...。在Create New Project对话框,选择新建工程保存的路径。在这里,我将工程保存在D:\Nucleo-L476文件夹,并命名为GPIO-Test1。

在随后的对话框器件型号选择STM32L476RGTx。

ert.jpg

点击OK。在Manage Run-Time Environment对话框,勾选CMSIS/Core和Device/Startup。

7678.jpg


下一步添加HAL库文件到工程。将STM32CubeL4包中的STM32L4xx_HAL_Driver文件夹复制到工程所在的目录。在Option for Target ‘Target1’的C/C++标签页将.\STM32L4xx_HAL_Driver\Inc添加到include路径。

erwe.jpg

新建main.c文件,并包含到工程中。该文件代码如下:

  1. #include "stm32l4xx.h"
  2. #include "stm32l4xx_hal_rcc.h"
  3. #include "stm32l4xx_hal_gpio.h"

  4. int main(void) {
  5.         GPIO_InitTypeDef GPIO_InitDef;
  6.         
  7.         __HAL_RCC_GPIOG_CLK_ENABLE();

  8.         GPIO_InitDef.Pin = GPIO_PIN_13 | GPIO_PIN_14;
  9.         GPIO_InitDef.Mode = GPIO_MODE_OUTPUT_PP;
  10.         GPIO_InitDef.Pull = GPIO_NOPULL;
  11.         GPIO_InitDef.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  12.         //Initialize pins
  13.         HAL_GPIO_Init(GPIOG, &GPIO_InitDef);

  14.         __HAL_RCC_GPIOA_CLK_ENABLE();

  15.         GPIO_InitDef.Pin = GPIO_PIN_0;
  16.         GPIO_InitDef.Mode = GPIO_MODE_INPUT;
  17.         GPIO_InitDef.Pull = GPIO_PULLDOWN;
  18.         GPIO_InitDef.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  19.         //Initialize pins
  20.         HAL_GPIO_Init(GPIOA, &GPIO_InitDef);

  21.     while (1) {
  22.             if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)) {
  23.                     HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13 | GPIO_PIN_14, GPIO_PIN_SET);
  24.             } else {
  25.                     HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13 | GPIO_PIN_14, GPIO_PIN_RESET);
  26.             }
  27.     }
  28. }
复制代码

编译并下载到开发板,可以看到LD2和LD3灯亮,按下USER按钮时,LD2和LD3灭。

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

本版积分规则

主题 47 | 回复: 78



手机版|

GMT+8, 2024-4-20 06:54 , Processed in 0.134624 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

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

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