Thông báo

Collapse
No announcement yet.

khắc phục lỗi arm stm32 không sử dụng được kết nối SW

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • khắc phục lỗi arm stm32 không sử dụng được kết nối SW

    Chào mọi người
    Tôi là người mới học ARM STM32. Tôi có một cái mạch dùng STM32f100C8T6 nhưng chỉ có thể nạp bằng kết nối SW.
    Hôm trước tôi viết chương trình có đoạn
    /* GPIOB Configuration: TIM3 CH2 (PB5) */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);
    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

    GPIO_Init(GPIOB, &GPIO_InitStructure);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)
    Do không chú ý nên khi nạp chương trình xong muốn nạp lại thì không thể thực hiện được vì khi ấn DEBUG thì đểu hiện thông báo
    No taget connected và Error: Flash Download failed - Target DLL has been cancelled
    Tôi tìn hiểu thì lý do là tại câu lệnh: GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)
    mạch của tôi không có kết nối JTAC nên không chuyển sang nạp với kết nối JTAC
    Xin mọi người cách khắc phục.
    Xin cảm ơn

  • #2
    Nguyên văn bởi silent_eagle Xem bài viết
    Chào mọi người
    Tôi là người mới học ARM STM32. Tôi có một cái mạch dùng STM32f100C8T6 nhưng chỉ có thể nạp bằng kết nối SW.
    Hôm trước tôi viết chương trình có đoạn
    /* GPIOB Configuration: TIM3 CH2 (PB5) */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);
    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

    GPIO_Init(GPIOB, &GPIO_InitStructure);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)
    Do không chú ý nên khi nạp chương trình xong muốn nạp lại thì không thể thực hiện được vì khi ấn DEBUG thì đểu hiện thông báo
    No taget connected và Error: Flash Download failed - Target DLL has been cancelled
    Tôi tìn hiểu thì lý do là tại câu lệnh: GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)
    mạch của tôi không có kết nối JTAC nên không chuyển sang nạp với kết nối JTAC
    Xin mọi người cách khắc phục.
    Xin cảm ơn

    Ngoài cách nạp bằng JTAG, SWD thì STM32 cũng có thể nạp được bằng bootloader qua UART . SET chân BOOT0, BOOT1 tương ứng rồi dùng Flash loader nạp qua UART .
    Flashing programs to STM32. Embedded Bootloader - Do It Easy With ScienceProg

    Chi tiết cách nạp qua bootloader cũng có thể tìm hiểu thêm trên google.
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #3
      chào mọi người.
      Vấn đề của tôi là chỉ có mạch nạp St-link và chỉ có thể nạp với SW, nó không hề có nút reset( chân này được nối với mức cao )hay nut chuyển đổi chế độ ở Boot0 và Boot1 (như trên các mạch học tập thường bán trên mạng, các chân này đêu được nối đất hết)
      sau khi tìm hiểu trên mạng và đựoc sự chỉ bảo của các anh đi trước tôi đã tìm được các cách như sau:
      vấn đề của tôi là dùng câu lệnh:
      GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
      Như vậy chíp bị khóa chế độ debug, nên không nạp bằng mạch stlink được nửa. Tôi tự nạp đọan code disable chức năng debug rồi.
      2 cách đầu tôi tìm ở trên diễn trang: Lỗi No target connected st-link
      1. Đưa MCU về chế độ bootloader và dùng UART để xóa đọan chương trình đó là ok. ( như các bạn ở trên)
      Cách này bạn chịu khó search trên diển đàn.
      2. Cách này dể hơn: Dùng STM32 ST-Link Utility + BOOT0 con MCU keo lên nguồn
      Nếu BOOT0 hàn xuống GND thì cắt nó. Hàn nó lên 3.3V (VCC của MCU)
      Nếu BOOT0 hàn điện trở kéo xuống GND. Chỉ cần hàn chân Boot0 lên VCC là ok.
      Tắt nguồn mở lại dùng STM32 ST-Link Utility để xóa MCU
      Cách này giải thích như sau: Khi MCU khởi động gặp chân BOOT0=VCC -> nó nhảy vào trương trình bootloader của ST, nên không chạy chương trình của bạn (chương trình mà nó disable JTAG đi). Nên bạn có thể dủng stlink xóa chương trình đi.
      Nhưng vấn đề là phải cắt chân ra rồi hàn lại,
      Cách thư 3 được ông anh giúp như sau
      - Kết nối mạch với máy tính qua mạch nạp st-link, mở sẵn chương trình STM32 ST-LINK Utility
      - Nối chân reset với đất ( tôi dùng một cái dây câu chân đấy với đất có nút reset thì ấn nút, nhưng đừng bỏ ra) lúc này khi chân reset ở mức thấp thì các chân của chip sẽ trở về mặc định ban đầu
      - Kết nối mạch với chương trình nạp ( chỗ connect ấy, hay vào taget rồi chỉ vào connect). Khi kết nối được thì bạn cho chân reset lên mức cao ( tôi bỏ cái dây đồng ra thôi,nếu là nút reset thì bỏ ra)
      - Rồi dùng chương trình xóa chương trình cũ đi( vào taget chọn erase chip). Thế là ngon rồi
      Cảm ơn đã quan tâm

      Comment


      • #4
        rất mong được học hỏi
        Last edited by silent_eagle; 21-07-2014, 21:14.

        Comment


        • #5
          Dùng cách nhấn nút reset thì dễ dàng nhất!

          Comment


          • #6
            Tác động các MODE, reset và xóa_thế là xong.


            Add: 97 Quán Nam - Lê Chân - Hải Phòng.
            Tel: 031 518648 Phone: 0904 283 505

            Comment


            • #7
              cách thứ 3 hay quá. thanx bác, lưu lại để khi nào cần thì có cái dùng.

              Comment


              • #8
                các bác ai biết lỗi gì ko ạ? sau khi tải nó hiện thế nàym

                Comment


                • #9
                  ấn ok xong thì nó hiện vầy, có cao thủ nào chỉ dẫn với

                  Comment

                  Về tác giả

                  Collapse

                  silent_eagle Tìm hiểu thêm về silent_eagle

                  Bài viết mới nhất

                  Collapse

                  • bqviet
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi bqviet
                    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                    06-12-2025, 17:17
                  • nguyendinhvan
                    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                    bởi nguyendinhvan
                    Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                    05-12-2025, 19:59
                  • afrendly
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi afrendly
                    Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                    04-12-2025, 01:27
                  • nick22
                    Trả lời cho Máy điện châm ?
                    bởi nick22
                    Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                    01-12-2025, 13:23
                  Đang tải...
                  X