Hướng dẫn tạo project lập trình STM32 với CubeMX và Keil C

STM32CubeMX là một ứng dụng hỗ trợ cấu hình các tính năng cho các dòng vi điều khiển STM32 thông qua giao diện đồ họa và tự động tạo mã từ các cấu hình đó.

KeilC là một môi trường phát triển tích hợp (IDE) giúp lập trình viên viết mã, thực hiện gỡ lỗi và nạp chương trình vào vi điều khiển.

Trong bài viết này, chúng ta sẽ hướng dẫn cách tạo một project với STM32F103C8 bằng cách sử dụng STM32CubeMX và KeilC.

1. Giao diện khi khởi động STM32CubeMX

Mở phần mềm CubeMX. Giao diện chính sẽ hiển thị với các tùy chọn:

  • Tạo project mới: File -> New Project hoặc nhấn vào ACCESS TO MCU SELECTOR nếu bạn lập trình 1 MCU STM32 bất kỳ, hoặc nhấn vào ACCESS TO BOARD SELECTOR nếu bạn lập trình trên 1 board phát triển của hãng STM32.
  • Mở 1 project mới tạo gần đây: chọn mục “Recent Opened Projects”.
  • Mở 1 project bất kỳ: chọn mục “Other Projects”.

2. Tạo project mới

  • Các bạn chọn FileNew Project, giao diện chọn vi điều khiển STM32 sẽ hiện ra.
  • Chọn vi điều khiển : tại mục Part Number Search các bạn nhập vào tên vi điều khiển mà mình muốn cấu hình.
  • Sau đó nhấn “Start Project”.

3. Các cấu hình

4. Cấu hình cho chip

Tại mục “Pinout & Configuration”:

  • Cấu hình nạp code: chúng ta chọn “System Core” → “SYS” → “Debug” → Serial Wire để nạp chương trình cho VDK qua 2 chân SWDIO và SWCLK ( đây chính là 2 chân của mạch nạp ST-Link V2 kết nối với vi điều khiển).
  • Cấu hình các ngoại vi: Việc cấu hình các ngoại vi như INPUT, INPUT, External Interrupt, ADC, TIMER, UART… có thể được thực hiện bằng cách chuột phải để chọn chân trực tiếp và kích chuột trái vào chân mà mình muốn cài đặt. Ví dụ : cài đặt chân PC13 hoạt động với chức năng OUTPUT (bạn có thể phóng to/thu nhỏ hình ảnh vi điều khiển bằng cách lăn chuột giữa).

Ngoài ra, các bạn cũng có thể cấu hình các ngoại vi khác tại các mục: System Core, Analog, Timers, Connectivity…

  • Cấu hình clock cho vi điều khiển.

Tại mục Clock Configuration: Các bạn cấu hình lựa chọn nguồn tạo dao động và tần số hoạt động cho vi điều khiển (Bộ xử lý trung tâm – CPU và Peripherals – các ngoại vi) thông qua Clock tree. (Kết hợp với cấu hình RCC tại System Core)

Ở đây chủ yếu sẽ có 2 nguồn cấp Clock chính cho VDK.

  • Nguồn Clock nội từ bộ dao động RC do Chip hỗ trợ (HSI).
  • Nguồn Clock từ thạch anh ngoài (HSE).

Nếu như trên mạch của các bạn có thạch anh ngoài thì mình khuyên nên cấu hình Clock từ nguồn này sẽ đem lại độ chính xác cao và mức tiêu thụ điện năng thấp hơn. Nếu như trên mạch không có thạch anh ngoài thì các bạn chọn cấu hình từ bộ dao động nội RC của Chip.

5. Lưu thông tin Project và tạo code

  • Các bạn điền tên của project tại mục “Project Name”.
  • Chọn thư mục lưu project tại mục “Project Location”.
  • Tại mục “Toolchain / IDE”, chúng ta chọn “MDK-ARM V5”.
  • Cuối cùng ấn “GENERATE CODE”.

6. Các thao tác với Keil C
Sau khi cấu hình, sinh code từ phần mềm STM32CubeMX và mở Project Keil C, các bạn mở file main.c tại mục Application/User.
Có các biểu tượng Build (F7) để compile chương trình và Load (F8) để nạp chương trình.

Một số lưu ý khi nạp chương trình:

Các bạn nhấn vào biểu tượng Option for Target hoặc Project -> Option for Target để thực hiện 1 số cấu hình:

Tại cửa sổ Option for Target, các bạn chọn thẻ Debug và tick chọn Use ST-Link Debugger, để nạp chương trình xuống kit (nếu chọn Use Simulator thì sẽ ở chế độ mô phỏng).
Nhấn vào Settings tại Use: ST-Link Debugger, cửa sổ Cortex-M Target Driver Setup, các bạn chọn thẻ Flash Download, tại đây nếu tick chọn Reset and Run thì ngay sau khi nạp, chương trình sẽ chạy ngay. Nếu không tick chọn thì các bạn nạp code xong, nhấn vào nút reset trên board mạch thì chương trình mới chạy.

Chúc các bạn thành công !

Nhận xét

Mới hơn Cũ hơn