Hi
Tôi sẽ chỉ nhận xét về phần đầu của bài viết này vì tôi tin rằng một khi mà lỗi ban đầu được sửa chữa tất cả mọi thứ khác sẽ rơi vào vị trí.
Đầu tiên,
FLASH_ProgramOptionByte (OPT2, 0x02);
------------ -----
FLASH_ProgramOptionByte (OPT2 + 1, 0xFD);
Đây là tồi tệ hơn sau đó thừa như cuộc gọi này sẽ vít lên các byte đầu tiên của OPT3. Tôi không biết những gì các stm8 sẽ làm gì khi các byte tùy chọn là không chính xác.
-----------------
Kinh nghiệm riêng của tôi đã không được tốt với các byte tùy chọn, nhưng đó là một cặp vợ chồng năm trước khi tôi biết những gì tôi đang làm. Tôi cấu hình lại các thiết lập rất nhiều, nhưng không bao giờ trên bay. Trừ khi bạn đang làm một số ưa thích chuyển đổi nó không phải là cần thiết. Nó là dễ dàng hơn nhiều để thay đổi các byte tùy chọn với STVP hoặc STVD và nếu bạn đang có được sản xuất cái gì đó nó là thực hành thực sự tốt để làm bộ nhớ chương trình và lựa chọn byte để chắc chắn rằng tất cả mọi thứ là cách mà bạn muốn. Chúng tôi đã thực sự tìm thấy một vài bộ xử lý với không lựa chọn byte trinh nữ.
Nếu bạn nhìn vào các tập tin tiêu đề "stm8s_flash.h" bạn sẽ thấy
khoảng trống FLASH_ProgramOptionByte (uint16_t Địa chỉ, uint8_t Data);
Lưu ý rằng các toán hạng đầu tiên được gọi là "Địa chỉ" không Bù lại. Để progrom OPT-> OPT2 chức năng sẽ mong đợi để xem 0x4803
Hãy thử:
FLASH_ProgramOptionByte (& (OPT-> OPT2), 0x02);
----------------------
hi vọng điêu nay co ich! Lưu ý rằng tôi ĐÃ KHÔNG thực sự cố gắng nào của này. Tôi không sử dụng các thư viện phần mềm như tôi bắt đầu ra với bộ xử lý này trước khi nó đã có sẵn và đã phát triển công cụ của riêng tôi.
đang được dịch, vui lòng đợi..