sử dụng tính năng System Memory Bootloader có sẵn bên trong chip
Mạch chuyển đổi USB sang TTL (USB-to-UART): Các loại phổ biến là CP2102, FT232, CH340 hoặc PL2303.
Bootloader của STM32 thường lắng nghe trên cổng USART1 (thường là PA9 và PA10 đối với dòng F103).
TX(USB-TTL) -> PA10(RX1): Truyền (TX) vào nhận (RX)
RX(USB-TTL) -> PA9(TX1): Nhận (RX) từ truyền (TX)
GND(USB-TTL) -> GND: Chung mass
3V3(hoặc 5V)(USB-TTL) -> 3.3V(hoặc 5V): Cấp nguồn cho board
Để STM32 chạy vào Bootloader thay vì chạy chương trình chính, bạn cần thay đổi trạng thái của chân BOOT0 và BOOT1 trước khi cấp nguồn hoặc nhấn Reset.
Chế độ nạp (System Memory): BOOT0: Chuyển sang 1 (High / 3.3V),BOOT1: Chuyển sang 0 (Low / GND).
Chế độ chạy bình thường (Flash Memory):BOOT0: 0,BOOT1: 0.
Thao tác:
1.Dời Jumper của BOOT0 sang vị trí 1
2.Nhấn nút Reset trên board STM32 để chip khởi động vào chế độ Bootloader
3.Mở phần mềm Flash Loader (STMicroelectronics STM32CubeProgrammer)
4.Chọn giao tiếp UART, chọn cổng COM tương ứng với USB-to-UART
5.Chọn tốc độ baud (baud rate) phù hợp, ví dụ: 115200 bps
6.Parity: Even
7. Nhấn nút Connect(Màu xanh lá)
-Nếu kết nối thành công:bạn sẽ thấy dữ liệu bộ nhớ chip hiện ra
-Nếu thất bại:Kiểm tra lại dây TX-RX (có bị ngược không?) và đảm bảo đã set BOOT0 = 1 rồi Reset chưa
8.Nhấn tab Open File (hoặc dấu +), chọn file firmware (.hex hoặc .bin)
9.Nhấn Download để bắt đầu nạp. Chờ thông báo 'File download complete'
Sau khi nạp xong:
1.Nhấn Disconnect trên phần mềm
2.Rút dây hoặc tắt nguồn
3.Trả lại Jumper BOOT0 về vị trí 0
4.Nhấn nút Reset trên board