[C20] Hướng dẫn khắc phục lỗi không nạp được code cho STM32

Chào các bạn :D:D
Trong buổi học đầu tiên, chúng ta đã có cái nhìn tổng quan về vi điều khiển và bài thực hành blinky led đầu tiên. Tuy nhiên, do sai sai ở chỗ nào đó, có nhiều bạn gặp bug khi ST-Link không thể nạp code được cho board Blue Pill :9cool_too_sad::9cool_too_sad: Sau đi đây mình xin hướng dẫn một số giải pháp

Đầu tiên, trong điều kiện cả 2 board còn sống :2cool_burn_joss_stick::2cool_burn_joss_stick:, cần chắn rằng đã làm đủ các bước ở đây, : Link
UPDATE: Sau buổi 2, mình thấy có thêm một số lỗi khá tốn não do chính chúng ta tạo ra :gach:gach:5cool_beat_plaster::5cool_beat_plaster:
  • Tên project KHÔNG CÓ DẤU, KHOẢNG CÁCH VÀ CÁC KÝ TỰ LẠ.:1cool_choler:
  • Tương tự với đường dẫn thư mục, để đảm bảo, các thư mục cũng không đặt tên có dấu, khoảng cách. Đây là config hợp lệ trước khi gen code
  • Trong trường hợp build không được, tạo project và thư mục mới hoàn toàn (không sửa lại tên cũ)
  • Một số bạn bấm nhầm nút Run, chú ý chọn config là con bướm xanh nhé :5cool_sweat: Bướm khác sẽ không chạy:D
  • Một số máy đen hơn là không có bướm :2cool_after_boom: Cách tốt nhất là xoá, xem lại các lỗi trên có mắc lỗi không rồi gen lại code. Nếu làm lại mà vẫn chưa được thì liên hệ trong group để bọn mình fix online nhé
Sau khi đã cố gắng thử mà vẫn không được, lần này chúng ta sẽ dùng "thuốc" mạnh :doc
Link down ST-LINK Utility ST-LINK driver
  • B1: Đảm bảo máy tính của bạn đã nhận ST-Link.
Máy cắm ST-Link vào có thể do lỏng cổng USB, thiếu driver,... nên không nhận được mạch nạp:
- Tải ST-LINK Utility và cài đặt tại đây.
- Cắm ST-Link vào máy tính và khởi động phần mềm ST-LINK Utility.
- Trong cửa sổ phần mềm, chọn Target -> Setting, hộp thoại mới hiện lên chọn Refresh.
- Kiểm tra xem Serial Number có số hay không, nếu có thì máy tính đã nhận ST-Link, bấm OK và pass qua B1, bắt đầu vào B2 bên dưới.
- Một số bạn dùng mạch ST-Link cũ chưa upgrade firmware sẽ xuất hiện lỗi Old ST-Link firmware/ ST-Link already used. Tắt cửa số, tiến hành upgrade như hình bên dưới.
- Nếu hiện lỗi No ST-Link Detected ! Giải nén và cài đặt driver ST-Link tại đây, trong thư mục giải nén tìm chạy dpinst_amd64.exe nếu máy bạn chạy 64bit hoặc dpinst_x86.exe nếu là 32bit. Nếu không biết máy mình bao nhiêu bit thì cứ nhấn cài thử 1 trong 2, bởi vì nếu sai nó sẽ không chạy :Rolling on the floor::Rolling on the floor:.
- Sau khi bấm vài cái next, yes :waiting::waiting: khi cài ST-Link driver. Quay lại B1 kiểm tra và đảm bảo máy đã nhận được ST-Link
  • B2: Xoá chương trình trong chip
Chip khi load chương trình cài đặt sai mất chân Debug làm chip không nạp được code. Lỗi này gây ra do quên/chưa config cho chip trong STM32CubeMX, do đó chip chỉ được nạp đúng 1 lần rồi lăn đùng ra bug :crying::crying::gach:gach
OK sai phải sửa, chúng ta bắt đầu xoá chip sau khi chắc chắn xong bước 1:
- Giữ phím Reset trên board BluePill, đồng thời bấm Connect trên máy tính, sau đó nhả nút Reset ra.
- Khi máy đã nhận chip (hiện ô số 2 trong hình), bấm nút xoá ở ô số 3.
Ok vậy là chúng ta đã rửa tội thành công, việc còn lại là vào STM32CubeMX để generate lại code và SystemWorkBench để nạp thử.
- Nếu vẫn chưa được, mở tuỳ chọn và sửa thành Softwave system reset như hình

Đó là vài tips nhỏ giúp chúng ta vượt qua thử thách đầu của khoá C20 :misdoubt: À mà quên, một vài board ST-Link ra chân không đúng (hàng chính hãng Tàu :big grin:) nên 2 chân SWDIO và SWDCLK bị đảo với nhau :5cool_still_dreaming:, vì thế sau khi thử các cách ở trên không được, các bạn hãy hy vọng là cách cuối sẽ thành công :2cool_burn_joss_stick:
ST-Link : Blue Pill
3V3 -> 3V3
GND -> GND
SWCLK -> SWCLK (swap sang SWDIO)
SWDIO -> SWIO (swap sang SWCLK )​

Nếu đã thực hiện tất cả các bước trên mà vẫn không nạp được code, hãy tìm đến Group PIF-Course, fanpage Pay It Forward Club hoặc rãnh hơn là ghé tổng hành dinh của PIF tại 304B1 để tìm cứu viện nhé. Chúc các bạn may mắn :4cool_beauty::4cool_beauty:
 

Attachments

Last edited:
Top