>> 本文已同步至碼云 - 點此鏈接進入倉庫 <<
環境
| 工具 | 版本 | 說明 |
|---|---|---|
開發板 | 小熊派IoT開發板 | 建議相同 |
ubuntu | 16.04 | 版本關系不大 |
STM32CubeMX | V6.3.0 | 建議相同 |
L4軟體包 | STM32Cube FW_L4 V1.16.0 | 建議相同 |
STM32CubeProgrammer | v2.8.0 | 版本關系不大 |
交叉編譯工具鏈 | gcc-arm-none-eabi-10.3-2021.07 | 版本關系不大 |
STM32CubeMX 配置
芯片選擇
新建專案-選擇對應的芯片- 我板子使用的芯片是 :
STM32L431RCT6 - 大家可以根據自己的實際情況選擇對應的芯片
- 如下:

時鐘配置
- 配置
RCC - 配置時鐘樹, 配制成最高速率
80M Hz->回車 - 如下:

配置燒錄方式
- 配置燒錄方式
SYS為debug選項選擇Serial Wire(4線燒錄CLKDIOVCCGND) - 如下:
配置 USART 串口
- 根據原理圖確定自己對應的串口, 我的是
USART1 - 選擇
Asynchronous異步傳輸 - 下面的配置可以設定引數, 我這兒就是用默認的引數
- 如下:
生成 makefile 專案
- 選擇
Copy only the necessary library files只復制必要的庫檔案 - 配置好專案的名稱以及位置
- 配置為
Basic基本配置 - 選擇生成
Makefile專案 - 最后點擊
GENERATE CODE生成專案代碼
修改代碼
思路: 將生成的代碼復制到ubuntu上面修改編譯, 或者修改好了上傳到ubuntu上編譯
- 修改
stm32cubemx_makefile_printf\Src\main.c檔案 - 添加
#include <stdio.h> - 重新定義
_write函式 main()函式主回圈中 添加代碼測驗printf和USART功能
#include <stdio.h>
int _write(int fd, char *ch, int len)
{
HAL_UART_Transmit(&huart1, (uint8_t*)ch, len, 0xFFFF);
return len;
}
int num = 1024;
char tx_buf[] = "Hello World1!";
printf("\nnum = %d\n", num);
HAL_UART_Transmit(&huart1, (unsigned char *)tx_buf, 11, 10);
HAL_Delay(1000);
編譯
- 進入
Makefile所在的目錄 - 輸入
make進行編譯 - 生成的三個檔案 (
.bin.elf.hex) 都可以用來燒錄 - 如下

燒錄
- 打開
STM32CubeProgrammer - 鏈接
ST-LINK - 選擇剛剛生成的檔案進行燒錄
- 如下:

運行
- 連接串口, 打開串口除錯工具
- 如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297647.html
標籤:其他
