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