2. 基于STM32CubeIDE搭建开发环境 --- 建立工程

本博客中示例代码下载路径: https://github.com/maziot-stm32/A1/releases/tag/v0.2

准备工作

根据自己PC的操作系统预先下载并安装好 STM32CubeIDE 和 STM32CubeProg 工具.

下载链接:

  • STM32CubeIDE:
    https://links.jianshu.com/go?to=https%3A%2F%2Fwww.st.com%2Fcontent%2Fst_com%2Fen%2Fproducts%2Fdevelopment-tools%2Fsoftware-development-tools%2Fstm32-software-development-tools%2Fstm32-ides%2Fstm32cubeide.html

  • STM32CubeProg:
    https://links.jianshu.com/go?to=https%3A%2F%2Fwww.st.com%2Fcontent%2Fst_com%2Fen%2Fproducts%2Fdevelopment-tools%2Fsoftware-development-tools%2Fstm32-software-development-tools%2Fstm32-programmers%2Fstm32cubeprog.html

新建工程

step1. 新建工程 File >>> New >>> STM32 Project

新建工程

step2. 使用搜索功能快速找到mcu型号

STM32F103RC

step3. 设置工程名, 也可以选择工程的保存位置, 以及配置工程选项

设置工程名

step4. 配置STM32资源
工程创建结束后进入到可视化配置界面, 如下图:

可视化配置界面

启用SW调试接口, 这一步很关键, 没有启用将导致STM32无法下载程序

启用SW调试接口

启用外部时钟源


启用外部晶振

配置时钟树


时钟树

CTRL+S, 保存工程, 至此工程就建立好了.

点灯程序

工程建立好, 写个最简单的点灯 demo 程序, 验证下编译和烧写的步骤. 这里使用 STM32F103RC 最小系统板进行验证.

f103rc

第一步是要看原理图, 确认LED灯接在哪个GPIO上.
原理图代码仓库: https://github.com/maziot-stm32/A1.Resource

LED原理图

确认到 LED 连接在 PA8 和 PD2 引脚上. 因此在工程中main.c(位于Core/Src目录下)文件中增加以下测试代码:

#define LED0_Pin        GPIO_PIN_8
#define LED0_GPIO_Port  GPIOA
#define LED1_Pin        GPIO_PIN_2
#define LED1_GPIO_Port  GPIOD

#define LED_ON          GPIO_PIN_RESET
#define LED_OFF         GPIO_PIN_SET

/**
 * @brief  Init led
 * @retval None
 */
void led_init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};

    /* GPIO Ports Clock Enable */
    __HAL_RCC_GPIOD_CLK_ENABLE();
    __HAL_RCC_GPIOA_CLK_ENABLE();

    /*Configure GPIO pin : LED0_Pin */
    GPIO_InitStruct.Pin = LED0_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(LED0_GPIO_Port, &GPIO_InitStruct);

    /*Configure GPIO pin : LED1_Pin */
    GPIO_InitStruct.Pin = LED1_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
}

/**
 * @brief  The application entry point.
 * @retval int
 */
int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    led_init();

    while (1)
    {
        HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, LED_ON);
        HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, LED_ON);
        HAL_Delay(200);
        HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, LED_OFF);
        HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, LED_OFF);
        HAL_Delay(200);
    }
}

进行编译, 编译成功后将生成 A1.elf 文件.

烧写验证

通过 STM32CubeProg + ST-LINK 烧写 A1.elf 文件到硬件设备上. 烧写配置如下:

软件启动页面
烧写软件配置

通过 CoFlash + CMSIS-DAP 烧写 A1.elf 文件到硬件设备上. 烧写配置如下:

config配置页
command配置页

烧写结束后, 将看到硬件设备上两个 LED 循环闪烁. 至此, 新建工程并简单验证OK.

led闪烁效果

SW下载方式接线

SW接线

你可能感兴趣的:(2. 基于STM32CubeIDE搭建开发环境 --- 建立工程)