Nội Dung Bài Viết
Bài viết này là hướng dẫn chi tiết dành cho người mới bắt đầu lập trình STM32 thanh ghi (register level programming), tập trung vào cách build project tạo file HEX trong Keil uVision, nạp chương trình với ST-Link V2 cho lập trình STM32F103RCT6 sử dụng Keil C, và debug code hiệu quả. Nếu bạn đang tìm kiếm cách lập trình STM32 không dùng thư viện HAL mà trực tiếp thao tác thanh ghi, đây chính là hướng dẫn phù hợp.
Mục Tiêu Của Hướng Dẫn Build Hex trong Keil và Nạp chương trình với ST-Link V2
- Bài trước chúng ta đã học “Lập trình STM32 thanh ghi cấu hình GPIO Output STM32F103RCT6” và viết chương trình bật/tắt LED0 (PA8)
- Hiểu cách build và tạo file HEX trong Keil cho project STM32 thanh ghi.
- Nạp chương trình lên board STM32F103RCT6 sử dụng ST-Link V2.
- Thực hiện debug code, theo dõi thanh ghi và ngoại vi.
Hướng Dẫn Build Project Và Tạo File HEX Trong Keil
Để build HEX Keil cho STM32F103:
- Build Target: Nhấn F7 hoặc Project > Build Target để compile và link code, tạo file .axf.
- Tạo File HEX: Vào Project > Options for Target > Tab Output > Tick chọn Create HEX File. Sau đó build lại để sinh file .hex.
- Cài Đặt Quan Trọng:
- Tab Target: Đặt Xtal (MHz) = 8.0 (tần số thạch anh ngoài phổ biến).
- Tab C/C++: Đặt Optimization = Level 0 (-O0) để code dễ debug, không bị tối ưu hóa làm mất biến/thanh ghi.
Nạp Chương Trình Với ST-Link V2 cho board STM32F103RCT6 mini
ST-Link V2 là công cụ phổ biến để nạp chương trình ST-Link V2 cho STM32.
Kết Nối Phần Cứng ST-Link V2



Kết nối tối thiểu qua giao thức SWD:
- SWDIO (PA13 trên STM32) → SWDIO của ST-Link.
- SWCLK (PA14 trên STM32) → SWCLK của ST-Link.
- GND → GND.
- Có thể nối 3.3V nếu board không có nguồn riêng (khuyến nghị dùng nguồn ngoài để an toàn).
Nạp Trong Keil uVision
- Vào Project > Options for Target > Tab Debug.
- Chọn ST-Link Debugger ở phần Use.
- Nhấn Settings > Port: SW (Serial Wire).
- Tick Load Application at Startup.
- Nhấn Flash > Download (hoặc F8) để nạp file .hex/.axf trực tiếp.
Nạp Thủ Công Bằng STM32CubeProgrammer
- Mở STM32CubeProgrammer.
- Kết nối ST-Link.
- Chọn file .hex > Nhấn Download.
Debug Code STM32 Thanh Ghi Trong Keil
- Nhấn Ctrl + F5 để vào chế độ debug.
- Đặt breakpoint (F9), step over (F10), step into (F11).
- Theo dõi thanh ghi quan trọng như RCC->CR, GPIOA->ODR trong cửa sổ Watch.
- Xem trạng thái ngoại vi: View > Peripheral Registers (rất hữu ích khi lập trình thanh ghi).
Lưu Ý Khi Lập Trình STM32 Thanh Ghi Với ST-Link V2
- Cài driver ST-Link mới nhất từ STMicroelectronics.
- Nếu lỗi kết nối, kiểm tra firmware ST-Link và quyền admin.
- Khi lập trình STM32 thanh ghi, tắt tối ưu hóa để dễ theo dõi biến và thanh ghi.
Hướng dẫn này giúp bạn nhanh chóng build HEX trong Keil, nạp chương trình với ST-Link V2 và debug project STM32 một cách hiệu quả.
