Thủ Thuật Điện Tử

Lập trình STM32F103C8T6 bằng Keil uVision

Lập trình STM32F103C8T6 bằng Keil uVision : Trong hướng dẫn này, tôi sẽ chỉ cho bạn Cách lập trình STM32F103C8T6 bằng Keil uVision và Phần mềm tạo mã STM32CubeMX. Bạn sẽ học cách cài đặt Phần mềm (cả Keil và STM32CubeMX), định cấu hình phần mềm theo yêu cầu của chúng tôi và tải lên mã bằng Trình gỡ lỗi và Lập trình ST-Link.

Giới thiệu

Cho đến nay, tôi đã thực hiện một số dự án dựa trên MCU STM3F103C8T6 bằng cách sử dụng Bảng STM32 Blue Pill. Trong tất cả các dự án này, tôi đã sử dụng Arduino IDE làm công cụ để viết mã cũng như tải mã lên STM32 bằng Bộ chuyển đổi USB sang UART.

Sử dụng Arduino IDE cho các dự án STM32 rất dễ dàng vì thuật ngữ Arduino quen thuộc cũng có thể được áp dụng cho STM32F103C8T6. Điều này có thể chấp nhận được đối với người mới bắt đầu nhưng nếu bạn muốn nghiêm túc tìm hiểu cách hoạt động của MCU STM32 mạnh mẽ, thì đây không phải là cách đúng đắn.

Có thể bạn quan tâm

Cách thích hợp là bước ra khỏi thế giới Arduino và bước vào một bộ công cụ chuyên nghiệp hơn về cả phần mềm cũng như phần cứng. Nói về phần mềm, tôi khuyên bạn nên sử dụng Keil uVision IDE của ARM. Đây là một công cụ tuyệt vời để làm việc với các MCU dựa trên ARM như STM32F103C8T6 của chúng tôi và nó cũng hỗ trợ gỡ lỗi thích hợp.

Về phần cứng, chúng ta phải sử dụng một phần cứng riêng để lập trình (cũng như gỡ lỗi) STM32 Blue Pill Board. Phần cứng này được gọi là ST-LINK / V2. Nó giống như bộ lập trình và gỡ lỗi trong mạch được phát triển bởi STMicroelectronics. Mặc dù bộ lập trình ban đầu sẽ đắt nhưng có nhiều bộ lập trình của bên thứ ba tương thích với bộ lập trình ban đầu và chi phí rất thấp.

Có một phần mềm quan trọng khác được gọi là STM32CubeMX. Điều này cũng được cung cấp bởi STMicroelectronics và được sử dụng để tạo mã cho MCU STM32 cụ thể cũng như một IDE cụ thể.

Tôi sẽ hướng dẫn bạn cách sử dụng tất cả phần mềm và phần cứng này để bạn có thể dễ dàng lập trình STM32F103C8T6 bằng Keil uVision và STM32CubeMX.

Tải xuống và cài đặt STM32CubeMX

Đầu tiên, chúng ta hãy bắt đầu với Công cụ tạo mã STM32CubeMX. Tải xuống phần mềm này từ trang web STMicroelectronics chính thức  . Bạn phải đăng nhập vào ST để tải xuống phần mềm. Tại thời điểm viết hướng dẫn này, phiên bản của STM32CubeMX là 5.6.1. Cài đặt phần mềm và mở nó.

Lập trình STM32F103C8T6 bằng Keil uVision

Ở phía bên phải của ứng dụng, nhấp vào tùy chọn cài đặt hoặc gỡ bỏ gói phần mềm nhúng. Một cửa sổ mới sẽ mở ra.

STM32Cube MCU Packages

Trong đó, chọn tùy chọn STM32Cube MCU Packages và mở rộng tab STM32F1 (vì MCU của chúng tôi là STM32F103C8T6). Gói mới nhất tại thời điểm đó là 1.8.0. Chọn phiên bản mới nhất và nhấp vào tùy chọn Install Now ở dưới cùng. Nó sẽ tải xuống và cài đặt Gói MCU. Sau khi hoàn thành, bạn có thể đóng cửa sổ này.

STM32F103C8T6

Dự án STM32CubeMX mới

Bây giờ, trong cửa sổ chính, chọn tùy chọn ACCESS TO MCU SELECTOR. Một cửa sổ mới sẽ mở ra để chúng tôi chọn MCU mà chúng tôi đang làm việc.

Dự án STM32CubeMX mới

Trong cửa sổ mới, trong tab Bộ chọn MCU / MPU, hãy tìm kiếm “STM32F103C8”. Ở bên phải, MCU của chúng tôi sẽ được liệt kê. Chọn MCU đó và ở góc trên cùng bên phải, nhấp vào tùy chọn Start Project.

Bộ chọn MCU - MPU,

Cửa sổ dự án chính sẽ mở ra với sơ đồ chân của MCU STM32F103C8T6 ở bên phải và các tùy chọn cấu hình ở bên trái. Trong tab Sơ đồ và cấu hình, mở rộng khối Hệ thống lõi và chọn tùy chọn SYS. Chọn Debug as Serial Wire. Ngay sau khi bạn chọn tùy chọn này, bạn có thể quan sát thấy các chân PA13 và PA14 là SWDIO và CK tức là các chân Serial Wire Debug Data và Clock.

STM32 Blue Pill

Bước tiếp theo là cấu hình đèn LED hiện diện trên Blue Pill Board. Từ sơ đồ của STM32 Blue Pill, chúng tôi biết rằng đèn LED Xanh lục được kết nối với PC13. Do đó, hãy phóng to chế độ xem Sơ đồ chân của MCU STM32F103C8T6 và trên Pin PC13, nhấp chuột trái và chọn tùy chọn GPIO_Output. Chúng ta có thể thay đổi nhãn của ghim này bằng cách nhấp chuột phải vào Ghim PC13 và chọn tùy chọn Enter User Label. Tôi đã sử dụng nhãn “LED_Green”.

MCU STM32

Điều này hoàn thành thiết lập cơ bản cho dự án. Một thứ khác mà chúng ta có thể cấu hình là Đồng hồ nhưng MCU STM32 sử dụng Bộ tạo dao động RC bên trong theo mặc định (được định cấu hình trong Hàm SystemInit). Vì vậy, chúng ta có thể để nguyên Cấu hình đồng hồ.

Trong bước tiếp theo, hãy chọn Tab Trình quản lý Dự án và chọn một vị trí và tên thích hợp cho dự án của bạn. Trong trường hợp của tôi, tôi đã đặt tên dự án là “STM32_LED_Blinky”. Ngoài ra, chọn Toolchain / IDE là MDK-ARM, không có gì khác ngoài Keil uVision IDE.

STM32_LED_Blinky

Sau khi chọn chuỗi công cụ, hãy nhấp vào tùy chọn Trình tạo mã và chọn chỉ sao chép tùy chọn tệp thư viện cần thiết. Sau đó, bạn có thể nhấp vào tùy chọn TẠO MÃ. Công cụ sẽ tạo một dự án dựa trên IDE đã chọn và cũng sao chép các tệp thư viện cần thiết cho dự án. Sau khi mã được tạo, bạn có thể đóng Phần mềm STM32CubeMX.

ST-LINK

Lưu ý ngắn gọn về Trình gỡ lỗi và Lập trình ST-LINK

Trước khi tiếp tục, chúng ta hãy cùng tìm hiểu sơ lược về Trình gỡ lỗi và Lập trình ST-LINK. Phiên bản mới nhất của nó được gọi là ST-LINK / V2. Phiên bản rẻ hơn của ST-LINK / V2 Lập trình được hiển thị trong hình ảnh bên dưới.

Trình gỡ lỗi và Lập trình ST-LINK

Một đầu của bộ lập trình là Đầu nối USB Male, bạn có thể cắm vào máy tính. Đầu kia của bộ lập trình bao gồm Giao diện JTAG / Serial Wire Debugging (SWD). Sơ đồ chân của giao diện này được in gọn gàng trên đầu Mô-đun trình gỡ lỗi.

USB Male

Từ các chân này, chúng ta phải sử dụng các chân 3.3V, GND, SWDIO và SWCLK. Nếu bạn nhớ sơ đồ chân của Bảng STM32F103C8T6 Blue Pill, giao diện SWD được đặt gọn gàng ở phía bên phải.

STM32F103C8T6 Blue Pill

Tải xuống và cài đặt Keil uVision

Bây giờ, chúng ta hãy tiến hành cài đặt Keil uVision MDK cho ARM. Sử dụng liên kết này , nhập thông tin liên hệ của bạn và tải xuống phiên bản đánh giá của MDK-ARM. Vào thời điểm đó, MDK-ARM Phiên bản 5.29 là phiên bản mới nhất.

MDK-ARM Phiên bản 5.29

Sau khi cài đặt MDK, bạn không cần phải mở uVision Keil vì chúng tôi sẽ làm điều đó từ mã đã tạo trước đó bằng STM32CubeMX.

Dự án Keil uVision mới

Thay vì tạo Dự án Keil uVision mới, chúng ta có thể sử dụng dự án được tạo trong quá trình Tạo mã STM32CubeMX. Mở thư mục đã lưu Dự án STM32CubeMX trước đó và mở Thư mục MDK-ARM.

STM32CubeMX

Trong thư mục này, có tệp Dự án Keil MDK STM32_LED_Blinky. Nhấp đúp vào tệp này và uVision Keil sẽ mở ra với tất cả các tệp mã nguồn và thư viện. Sau đó, bạn có thể mở tệp main.c.

STM32F103C8T6 bằng Keil uVision

Sửa đổi mã cho đèn LED nhấp nháy

Mã được tạo bằng STM32CubeMX chỉ là mã khởi tạo và không làm gì khác ngoài việc khởi tạo một số thiết bị ngoại vi theo cấu hình người dùng. Để triển khai một ứng dụng, chẳng hạn như Nhấp nháy đèn LED, bạn phải thêm mã cần thiết.

Trong tệp main.c, cuộn xuống chức năng chính và trong vòng lặp while (1), hãy thêm mã sau.

      HAL_GPIO_TogglePin (LED_Green_GPIO_Port, LED_Green_Pin);

      HAL_Delay (1000);

STM32F103C8T6 bằng Keil uVision

Mã này sẽ nhấp nháy đèn LED với độ trễ 1 giây. Bây giờ, bạn có thể “Xây dựng” dự án bằng F7 hoặc phím tắt trong IDE. Keil uVision bây giờ sẽ biên dịch mã và hiển thị kết quả biên dịch ở dưới cùng. Nếu có bất kỳ lỗi hoặc cảnh báo nào, số dòng sẽ được hiển thị tại đó có lỗi hoặc cảnh báo để bạn có thể dễ dàng sửa lỗi.

Thành phần bắt buộc

Trước khi tìm hiểu cách Lập trình STM32F103C8T6 bằng Keil uVision, chúng ta hãy xem qua các thành phần và kết nối.

  • STM32F103C8T6 MCU dựa trên Bảng STM32 Blue Pill
  • Trình gỡ lỗi và lập trình ST-LINK / V2
  • Kết nối dây

Kết nối ST-LINK với STM32F103C8T6

Kết nối chân SWDIO của ST-LINK / V2 với chân SWIO của STM32 Blue Pill. Đồng thời kết nối chân SWCLK của ST-LINK / V2 với chân SWCLK tương ứng của STM32 Blue Pill. Cuối cùng, kết nối các chân 3.3V và GND.

ST-LINK / V2 STM32 Blue Pill
GND GND
3,3V 3,3V
SWDIO SWIO
SWCLK SWCLK

Làm thế nào để lập trình STM32F103C8T6 bằng Keil uVision?

Sau khi thực hiện các kết nối trên, chúng ta có thể tiến hành Chương trình STM32F103C8T6 bằng Keil uVision. Kết nối Trình gỡ lỗi ST-LINK / V2 với máy tính. Trong uVision Keil, nhấp vào Tab Dự án và chọn liên kết Tùy chọn cho Mục tiêu …….

STM32F103C8T6 bằng Keil uVision

Chọn tab Debug và chọn ST-Link Debugger. Sau đó, nhấp vào tùy chọn Cài đặt bên cạnh nó.

ST-Link Debugger

Đi tới tùy chọn Tải xuống Flash và kiểm tra tùy chọn Đặt lại và Chạy. Sau đó, nhấp vào OK để lưu cài đặt và nhấp vào OK một lần nữa để đóng Tùy chọn cho mục tiêu.

lập trình STM32F103C8T6

Bây giờ, nếu bạn đã thực hiện bất kỳ thay đổi nào đối với mã, hãy lưu tất cả các thay đổi và chọn tùy chọn Xây dựng lại, bên cạnh tùy chọn xây dựng. Nếu không có lỗi, hãy nhấp vào tùy chọn Tải xuống. Keil uVision, với sự trợ giúp của ST-LINK / V2, giờ đây sẽ lập trình STM32F103C8T6 của bạn. Bạn có thể xem trạng thái ở phía dưới.

STM32F103C8T6 bằng Keil uVision, ST-LINK

Phần kết luận

Trong hướng dẫn này, tôi đã chỉ cho bạn cách Lập trình STM32F103C8T6 bằng Keil uVision, ST-LINK / V2 Debugger và Programmer.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button