问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

STM32CubeIDE开发基本流程详解

创作时间:
作者:
@小白创作中心

STM32CubeIDE开发基本流程详解

引用
CSDN
1.
https://blog.csdn.net/m0_70649291/article/details/143797428

本文将详细介绍使用STM32CubeIDE进行嵌入式开发的基本流程,包括工程创建、基本配置、任务配置、代码编写、编译和程序烧写等步骤。

一、建立工程

  1. 创建工程(点击之后等待下载和配置完成)

  2. 选择芯片(搜索时切换成英文,这里以STM32F103C8T6为例)

  3. 输入程序名后,点击Finish即可(等待配置完成)

  4. 创建完成后的界面和文件应该是这个样子的

二、基本的工程配置:时钟系统、调试方式

  1. 设置时钟源

  2. 在时钟系统架构图中将系统输入时钟改为HSE

  • HSE(High-Speed External): HSE是指外部高速时钟源。
  • HSI(High-Speed Internal): HSI是指内部高速时钟源。
  • PLLCLK: 锁相环倍频时钟源。
  1. 选择调试方式

三、任务配置(以LED灯定时闪烁为例)

1.Gpio配置

2.Timer配置

选择定时器→选择时钟源→配置定时器→使能定时器

3.生成基础代码

完成以上配置后,ctrl+s保存即可自动生成基础代码。

四、编写任务代码

  1. 这里使用中断定时LED灯的闪烁
HAL_TIM_Base_Start_IT(&htim2);	//开启定时器2中断,当定时器计时满之后,调用回调函数

  1. 回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)    //定时器溢出回调函数
{
    static unsigned char ledState = 0;
    if (htim == (&htim2))    //检查调用回调函数的定时器是否是 htim2
    {
        if (ledState == 0)
            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
        else
            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
        ledState = !ledState;
    }
}

五、编译工程

  1. 编译(点击锤子按钮)

  2. 右击工程,设置是否编译时生成二进制和十六进制文件(生成的文件在工程目录的debug目录下)
    ①这是debug模式下的设置,release模式(点击锤子右边的下三角)下只需要切换后同样设置即可
    ②勾选即可

六、烧写程序(两种方式)

1.方法一:直接在IDE中操作(点击小瓢虫即可)

2.方法二:选择更专业的烧写工具STM32CubeProgrammer

  1. 连接:选择烧写方式,然后点击Connect即可,最好频率调一下,不调也没关系。

  2. 选择要烧写的文件(.bin/.elf/.hex任一文件均可),勾选Verify programming,然后点击Start等待即可,烧写完成后点击Disconnected断开连接。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号