美文网首页
2. 基于STM32CubeIDE搭建开发环境 --- 建立工程

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

作者: mz8023yt | 来源:发表于2019-12-26 22:57 被阅读0次

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

    准备工作

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

    下载链接:

    新建工程

    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搭建开发环境 --- 建立工程

          本文链接:https://www.haomeiwen.com/subject/wcohoctx.html