[应用相关] 基于STM32CubeIDE搭建开发环境 --- 建立工程

[复制链接]
958|21
 楼主| internally 发表于 2020-5-10 08:46 | 显示全部楼层 |阅读模式
本博客中示例代码下载路径: https://github.com/maziot-stm32/A1/releases/tag/v0.2



作者:mz8023yt
链接:https://www.jianshu.com/p/812eb2fa4730
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 楼主| internally 发表于 2020-5-10 08:46 | 显示全部楼层
根据自己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
 楼主| internally 发表于 2020-5-10 08:49 | 显示全部楼层
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
 楼主| internally 发表于 2020-5-10 08:49 | 显示全部楼层
新建工程
step1. 新建工程 File >>> New >>> STM32 Project

396605eb74f9adaf0f.png
 楼主| internally 发表于 2020-5-10 08:50 | 显示全部楼层
step2. 使用搜索功能快速找到mcu型号

308285eb74fbbdf008.png
 楼主| internally 发表于 2020-5-10 08:52 | 显示全部楼层
step3. 设置工程名, 也可以选择工程的保存位置, 以及配置工程选项

81015eb74fdd5c2e3.png
 楼主| internally 发表于 2020-5-10 08:56 | 显示全部楼层
step4. 配置STM32资源
工程创建结束后进入到可视化配置界面, 如下图:
101935eb75082c3fa3.png
 楼主| internally 发表于 2020-5-10 08:58 | 显示全部楼层
启用SW调试接口, 这一步很关键, 没有启用将导致STM32无法下载程序
291365eb751b57b2a6.png
 楼主| internally 发表于 2020-5-10 08:59 | 显示全部楼层
启用外部时钟源

478545eb751ceddc0f.png
 楼主| internally 发表于 2020-5-10 08:59 | 显示全部楼层
配置时钟树

24815eb751f4cb0b3.png

CTRL+S, 保存工程, 至此工程就建立好了.
 楼主| internally 发表于 2020-5-10 09:00 | 显示全部楼层
点灯程序
工程建立好, 写个最简单的点灯 demo 程序, 验证下编译和烧写的步骤. 这里使用 STM32F103RC 最小系统板进行验证.
48245eb7521426aee.png
 楼主| internally 发表于 2020-5-10 09:01 | 显示全部楼层
第一步是要看原理图, 确认LED灯接在哪个GPIO上.
原理图代码仓库: https://github.com/maziot-stm32/A1.Resource

501775eb75240eaa6b.png
 楼主| internally 发表于 2020-5-10 09:01 | 显示全部楼层
确认到 LED 连接在 PA8 和 PD2 引脚上. 因此在工程中main.c(位于Core/Src目录下)文件中增加以下测试代码:

  1. #define LED0_Pin        GPIO_PIN_8
  2. #define LED0_GPIO_Port  GPIOA
  3. #define LED1_Pin        GPIO_PIN_2
  4. #define LED1_GPIO_Port  GPIOD

  5. #define LED_ON          GPIO_PIN_RESET
  6. #define LED_OFF         GPIO_PIN_SET

  7. /**
  8. * [url=home.php?mod=space&uid=247401]@brief[/url]  Init led
  9. * @retval None
  10. */
  11. void led_init(void)
  12. {
  13.     GPIO_InitTypeDef GPIO_InitStruct = {0};

  14.     /* GPIO Ports Clock Enable */
  15.     __HAL_RCC_GPIOD_CLK_ENABLE();
  16.     __HAL_RCC_GPIOA_CLK_ENABLE();

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

  23.     /*Configure GPIO pin : LED1_Pin */
  24.     GPIO_InitStruct.Pin = LED1_Pin;
  25.     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  26.     GPIO_InitStruct.Pull = GPIO_PULLUP;
  27.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  28.     HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
  29. }

  30. /**
  31. * @brief  The application entry point.
  32. * @retval int
  33. */
  34. int main(void)
  35. {
  36.     HAL_Init();
  37.     SystemClock_Config();
  38.     MX_GPIO_Init();
  39.     led_init();

  40.     while (1)
  41.     {
  42.         HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, LED_ON);
  43.         HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, LED_ON);
  44.         HAL_Delay(200);
  45.         HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, LED_OFF);
  46.         HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, LED_OFF);
  47.         HAL_Delay(200);
  48.     }
  49. }


进行编译, 编译成功后将生成 A1.elf 文件.
 楼主| internally 发表于 2020-5-10 09:02 | 显示全部楼层
烧写验证
通过 STM32CubeProg + ST-LINK 烧写 A1.elf 文件到硬件设备上. 烧写配置如下:

959115eb75295f1a4d.png
839225eb7529d74abb.png
 楼主| internally 发表于 2020-5-10 09:02 | 显示全部楼层
通过 CoFlash + CMSIS-DAP 烧写 A1.elf 文件到硬件设备上. 烧写配置如下:

504215eb752ba404a9.png
809245eb752c181bf0.png
 楼主| internally 发表于 2020-5-10 09:04 | 显示全部楼层
烧写结束后, 将看到硬件设备上两个 LED 循环闪烁. 至此, 新建工程并简单验证OK.

LED.gif
 楼主| internally 发表于 2020-5-10 09:05 | 显示全部楼层
SW下载方式接线
246535eb7534136bd2.png
观海 发表于 2020-6-2 16:07 | 显示全部楼层
非常感谢楼主分享
guanjiaer 发表于 2020-6-2 16:07 | 显示全部楼层
介绍的很是详细
heimaojingzhang 发表于 2020-6-2 16:07 | 显示全部楼层
楼主辛苦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

315

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部