Lập trình STM32 thanh ghi trên Keil uVision5 – Tạo project Keil

Dưới đây là hướng dẫn chi tiết nhất để tạo một project lập trình STM32 thanh ghi trên Keil uVision5 hoàn toàn, không dùng HAL, không dùng Standard Peripheral Library, không dùng CMSIS-Core (chỉ dùng startup file và thao tác trực tiếp với thanh ghi). Mục tiêu: STM32F103RCT6 (256 KB Flash – High Density).

Tạo project mới cho lập trình STM32 thanh ghi trên Keil

  1. Mở Keil uVision5 → ProjectNew µVision Project…
  2. Chọn thư mục lưu → Đặt tên project (ví dụ: STM32F103RCT6_Register)
  3. Chọn chip: STMicroelectronics → STM32F1 Series → STM32F103 → STM32F103RC (đúng với RCT6)

Manage Run-Time Environment

  • Cửa sổ hiện ra → Không tick bất kỳ thành phần nào (đặc biệt không tick CMSIS → Core và Device → Startup)
  • Nhấn OK → Khi hỏi “Add Startup code?” → chọn No

Thêm file startup chính xác cho High-Density

STM32F103RCT6 thuộc dòng High-Density → phải dùng file startup_stm32f10x_hd.s

Copy startup_stm32f10x_hd.s từ Keil CMSIS pack
Copy startup_stm32f10x_hd.s từ Keil CMSIS pack

Cách lấy file:

  • Copy file này vào thư mục dự án, ví dụ: .\startup\startup_stm32f10x_hd.s
  • Trong Keil: chuột phải Target → Add Group → đặt tên “Startup”
  • Chuột phải group Startup → Add Existing Files → chọn file vừa copy → Add
Add file startup startup_stm32f10x_hd.s vào project uVision Keil 5
Add file startup startup_stm32f10x_hd.s vào project uVision Keil 5

Tạo cấu trúc thư mục và file nguồn

  • Tạo 2 group: Source và Include
  • Group Source → Add New Item → C File → tên main.c
tạo file main.c cho Lập trình STM32 thanh ghi trên Keil uVision5
Tạo file main.c – Lập trình STM32 thanh ghi trên Keil uVision 5
  • Group Include → Add New Item → Header File → tên registers.h
Tạo file register.h cho project Keil C - Lập trình STM32 thanh ghi trên Keil uVision 5
Tạo file register.h – Lập trình STM32 thanh ghi trên Keil uVision 5

File registers.h (định nghĩa thanh ghi cơ bản)

Cấu hình Project Options (Alt+F7)

Tab Target

  • Xtal (MHz): 8.0
  • Tick: Use MicroLIB
Options for target stm32f103rct6 - XTAL 8HMZ
Options for target stm32f103rct6 – XTAL 8HMZ

Tab C/C++

  • Define: STM32F10X_HD
  • Additional Include Directories: .\Include

Tab Output

  • Tick: Create HEX File

Tab Linker

  • Tick: Use Memory Layout from Target Dialog
Options for target stm32f103rct6 - Include path
Options for target stm32f103rct6 – Include path

main.c

Build & nạp

  • F7 → Build → Không lỗi → sinh file .hex
  • Dùng ST-Link nạp
Build project Keil C - Lập trình stm32 thanh ghi Keil C
Build project Keil C – Lập trình stm32 thanh ghi Keil C

Lưu ý khi lập trình STM32 thanh ghi trên Keil

  • Lần đầu build có thể cảnh báo SystemInit không định nghĩa → bỏ qua hoặc thêm hàm rỗng:
  • Tất cả mọi thứ giờ đây đều do bạn tự thao tác trực tiếp với thanh ghi – đúng nghĩa lập trình STM32 thanh ghi keil!

Chúc bạn thành công với cách lập trình STM32 thanh ghi trên Keil uVision5! Đây là nền tảng vững chắc nhất trước khi học HAL hay LL.

Viết một bình luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.