|
当拿到开发板后,我一般做的第一件事就是通上电,运行开发板板载的演示程序,然后就想试试在开发板上写个简单的程序。在这篇文章中,我将简单介绍一下搭建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。
点击OK。在Manage Run-Time Environment对话框,勾选CMSIS/Core和Device/Startup。
下一步添加HAL库文件到工程。将STM32CubeL4包中的STM32L4xx_HAL_Driver文件夹复制到工程所在的目录。在Option for Target ‘Target1’的C/C++标签页将.\STM32L4xx_HAL_Driver\Inc添加到include路径。
新建main.c文件,并包含到工程中。该文件代码如下: - #include "stm32l4xx.h"
- #include "stm32l4xx_hal_rcc.h"
- #include "stm32l4xx_hal_gpio.h"
- int main(void) {
- GPIO_InitTypeDef GPIO_InitDef;
-
- __HAL_RCC_GPIOG_CLK_ENABLE();
- GPIO_InitDef.Pin = GPIO_PIN_13 | GPIO_PIN_14;
- GPIO_InitDef.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitDef.Pull = GPIO_NOPULL;
- GPIO_InitDef.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- //Initialize pins
- HAL_GPIO_Init(GPIOG, &GPIO_InitDef);
- __HAL_RCC_GPIOA_CLK_ENABLE();
- GPIO_InitDef.Pin = GPIO_PIN_0;
- GPIO_InitDef.Mode = GPIO_MODE_INPUT;
- GPIO_InitDef.Pull = GPIO_PULLDOWN;
- GPIO_InitDef.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- //Initialize pins
- HAL_GPIO_Init(GPIOA, &GPIO_InitDef);
- while (1) {
- if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)) {
- HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13 | GPIO_PIN_14, GPIO_PIN_SET);
- } else {
- HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13 | GPIO_PIN_14, GPIO_PIN_RESET);
- }
- }
- }
复制代码编译并下载到开发板,可以看到LD2和LD3灯亮,按下USER按钮时,LD2和LD3灭。 |