Nếu như bạn không thể nạp được chip lần nữa sau lần nạp đầu tiên thì tức là bạn đã không cấu hình Debug (hoặc cấu hình sai). Khi đó chip sẽ mặc định chân PA13 và PA14 không phải là chân nạp chip theo chuẩn SWD nữa nên mọi hoạt động cố gắng nạp cho chip lúc này trở nên vô ích.
Rất may vẫn có cách để khắc phục sự cố này, bạn có thể làm theo các bước sau:
B1: Tạo lại chương trình của bạn bằng STM32CubeMX và lần này cấu hình đúng như trong hướng dẫn nạp chip.
B2: Sau khi tạo lại code trên trình biên dịch (Keilv5 hoặc IAR for STM32) bạn biên dịch chương trình đó.
B3: Trước khi cắm lại mạch nạp, bạn phải cắm jump nối vào BOOT0 và BOOT1. Sau đó bạn cắm mạch nạp vào máy tính.
Trong trường hợp bạn dùng kit khác bạn phải đảm bảo chân BOOT0 phải được cấp mức 1 vào BOOT1 (PB2) phải cấp mức 0 như bảng dưới đây (có thể tham khảo chi tiết hơn trong “Reference Manual” của chip )
B4: Lúc này chip sẽ chạy ở trong vùng nhớ System của chip.
Do chip đã truy cập vào vùng nhớ System nên không có khả năng truy cập vào vùng nhớ Flash (chứa chương trình của bạn) nữa nên bạn hoàn toàn có thể nạp lại chương trình của bạn trong chế độ này.
B5: Sau khi bạn nạp xong chương trình với cấu hình đúng, bạn phải rút mạch nạp ra và gỡ jump nối ở BOOT0 và BOOT1 để chip có thể truy cập lại vào vùng nhớ Flash.
B6: Cắm lại mạch nạp và bạn có thể thấy chương trình của bạn lúc này đã hoạt động và bạn có thể nạp lại chương trình.
Chúc các bạn thành công.
Không có nhận xét nào:
Đăng nhận xét