# STM32CubeIDE開發流程


Posted by dav134679 on 2020-04-20

[TOC]


前言

這是本人的第一篇文章
本身是學生、兼職工程師(硬體?韌體?)
平常工作會用STM32 MCU與光感IC做應用開發(有點像AE?)
PCB Layout,設計自家開發板...
剛開始有個同樣是兼職的學長帶,只不過能教的有限
基本上都是自己google,也不知道自己的程度到底到哪了
最近工作剛滿一年,想說紀錄一下
其實平常工作都有寫日誌的習慣,只是想說整合一下
以後要交接還是複習都比較方便

文筆很爛(第一次用MD),技術大概也算菜,多見諒
有什麼高見的話也歡迎分享


STM32CubeIDE簡介

就是一個for STM32的集成開發平台
包含了STM32晶片選擇、硬體配置、燒錄、Debug等等,功能強大!
詳情還是請去ST官網看吧


STM32CubeIDE工程專案建置

Pinout配置懶人包(因需求而異):

  • Debug模式:

  • 外部晶振:

  • UART配置:

  • 中斷:

Clock Configuration最高時脈(for STM32F103C8T):

Project Manager

產生程式碼


專案結構

到這邊請先至main.c文件按下ctrl+B編譯

工程專案結構:

其中test.ioc可以回到硬體配置的地方
重新配置會覆蓋掉在BEGIN END 之外的程式


程式碼

  • 在main.c裡撰寫主要程式碼
    • 個人程式碼撰寫在 USER XXXX BEGIN XXXXX / USER XXXX END XXXX 裡面
    • 主要功能撰寫在無窮迴圈while裡面(根據應用而異)
    • 另外有很多程式區塊,可按照註記去撰寫相應的程式內容

Debug、燒錄

個人是用ST-LINK進行燒錄與Debug


IDE操作流程:



按下OK後即可進行燒錄
燒錄完成後會直接進入Debug模式
也可退出Debug模式直接看串口訊息,利用串口Debug(程式有寫用串口輸出)

使用printf串口輸出

在main.c裡

  #include <stdio.h>

在uart.c裡

  /* USER CODE BEGIN 1 */
  #ifdef __GNUC__
    /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
      set to 'Yes') calls __io_putchar() */
    #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  #else
    #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  #endif /* __GNUC__ */
  /**
    * @brief  Retargets the C library printf function to the USART.
    * @param  None
    * @retval None
    */
  PUTCHAR_PROTOTYPE
  {
    /* Place your implementation of fputc here */
    /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
  }
  /* USER CODE END 1 */

另外,也可使用STM32Cube Programmer進行燒錄

燒錄HEX或BIN檔取得方式:

之後便可在工程目錄中的Debug目錄下看到燒錄檔


結語

目前本人工程專案的建置經驗大概是這些
以上內容自知寫得很淺,算是我學而不精吧
總之,這篇比較像是自己的一個工作日誌的整合
如果有高手路過的話歡迎指教指教(很希望有高手帶...)


#STM32CubeIDE #STM32







Related Posts

[1] 品質管理 Why How What

[1] 品質管理 Why How What

[Day06] Applicative

[Day06] Applicative

content-length mismatch composer laravel

content-length mismatch composer laravel

Leetcode 刷題 pattern - Topological Sort

Leetcode 刷題 pattern - Topological Sort

[ Day 06 ] 用 InstaPy 打造 Instagram Bot 吧

[ Day 06 ] 用 InstaPy 打造 Instagram Bot 吧

[ MTR04 ]  程式基礎(下)

[ MTR04 ] 程式基礎(下)



Comments