01 STM32F108C8T6 GPIO với STM32CubeIDE
Chào anh em, sau thời gian dài vắng mặt nay mình đã trợ lại. Tìm kiếm trên mạng mình thấy STM32CubeIDE của nhà sản xuất cung cấp khá ngon và điều quan trọng là free license. Nay mới giới thiệu đến anh em để cùng học tập. Trước đó mình dùng Keil C và cũng khá ổn, gần đây vấn đề đánh bản quyền ở Việt Nam khá nghiêm trọng và đây là phương thức thay thê hợp lí. Dựa vào quan điểm cá nhân một số ưu khuyết điếm của tool so với Keil c như sau.
| Tiêu chí | STM32CubeIDE | Keil C / MDK-ARM |
|---|---|---|
| Chi Phí | Miễn phí | Bản đầy đủ cần license(giới hạn code build cho bản free). |
| Tương thích với STM32 | Do ST cung cấp nên độ tương thích nhỉnh hơn Keil C(⭐ ⭐ ⭐ ⭐⭐) | (⭐ ⭐ ⭐ ⭐) |
| Cấu hình MCU | Tương thích với MXCube gen code. | Tương thích với MXCube gen code nhưng nếu cấu hình bằng tay thì khá phức tạp. |
| Tính năng | Nhiều tính năng tích hợp nhưng đôi khi cũng là nhược điểm. | |
| IDE | Eclipse-based | µVision |
| Compiler | GCC/LLVM tùy cấu hình/toolchain | Arm Compiler / GCC tùy phiên bản |
| Debug | Tốt (⭐ ⭐ ⭐ ⭐) | Rất tốt (⭐ ⭐ ⭐ ⭐⭐) |
| Tốc độ build | Tốt (⭐ ⭐ ⭐ ⭐) | Rất tốt (⭐ ⭐ ⭐ ⭐⭐) |
| Tối ưu code | Tốt (⭐ ⭐ ⭐ ⭐) | Rất tốt (⭐ ⭐ ⭐ ⭐⭐) |
| Quản lí project | Tốt (⭐ ⭐ ⭐ ⭐) | Rất tốt (⭐ ⭐ ⭐ ⭐⭐) |
| Phù hợp để học | Rất tốt (⭐ ⭐ ⭐ ⭐⭐) | Tốt (⭐ ⭐ ⭐ ⭐) |
| Phù hợp để làm dự án | Tốt (⭐ ⭐ ⭐ ⭐) | Rất tốt (⭐ ⭐ ⭐ ⭐⭐) |
Dưới đây là một số step cơ bản để cấu hình + build một project đơn giản, chi tiết các bạn có thể tham khảo tài liệu hoặc video hướng dẫn của nhà sản xuất. Tài liệu cũng khá nhiều và mình chủ yếu dựa trên tài liệu của nhà sản xuất.
Cấu hình bằng STM32MXCube.
STM32MxCube mình cài đặt hiện tại là 6.18.1. Link tải mình có để ở cuối bài.
Mở STM32Cube, giao diện đầu tiên phải chọn là loại MCU cần sử dụng. (1) là loại hardware mà tự phát triển, (2) là một số board mẫu của nhà sản xuất ST – chứa đựng các chân cấu hình mặc định như board Discovery, Nucleo... (3) chứa các example + code cấu hình sẵn. Thông thường mình sẽ chọn (1) vì mình sử dụng hardware mà mình tự thiết kế.
Cấu hình Pinout & Configuration.
Phần SYS mình sẽ chọn sử dụng debug devide là Serial wire(sử dụng 2 chân kiểu dạng StlinkV2) phần SysTick cho hàm delay.
Phần RCC mình sẽ chọn là sử dụng thạch anh ngoài cho HSE và LSE vì phần cứng của mình đã hỗ trợ sẵn, các bạn có thể cấu hình dựa trên phần cứng có sẵn.
Phần GPIO mình chọn chân tương ứng và chức năng sử dụng, tương tự là phần cấu chi tiết cho chân IO đó: là mode input hay output, mức logic default là thấp hay cao, có pull-up hay pull-down, tần số điều khiển tối đa là cao hay thấp.
Clock configuration.
Vì phần cứng mình đã có Crystal lên mình sẽ chọn sử thạch anh ngoài, clock hệ thống luôn là maximum vì thời gian điều khiển từng câu lệnh sẽ là nhanh nhất.
Project manager.
Điền tên project name, thư mục lưu trữ, chọn IDE sử dụng, version của thư viện. Các phần khác có thể để mặc định hoặc tùy chỉnh dựa vào mục đích cá nhân. Sau đó nhấn nút generate code.
Open source code.
Sau khi nhấn generate code, phần thông báo mở lên và chọn open project. Nếu máy bạn đã cài STM32CubeIDE thì hệ thống sẽ tự động mở source code generate ra. Nếu có lỗi thì bạn kiểm tra phần cài đặt STM32CubeIDE của mình.
Edit, build và Flash.
STM32CubeIDE mình cài đặt hiện tại là 2.2.0. Link tải mình có để ở cuối bài.
Open main.c và bắt đầu edit code như hình. Câu lệnh điều khiển mình có thể tham khảo trong file thư viện kèm.
Build.
Sau khi sửa code, bạn có thể chọn build bằng cách nhấn vào biểu tượng cây búa(1) hoặc vào project -> build All hoặc phím tắt Ctrl + B để build. Kiểm thông báo trên cửa sổ Console.
Flash.
Kiểm tra debuger và hardware trước khi flash. Nhấn vào biểu tượng trên trace (1) hoặc chọn Run -> Run để nạp chương trình xuống phần cứng. Kiêm tra thông báo trên Console xem có lỗi hoặc đã thành công hay chưa.
Chọn debug option nếu bạn muốn debug.
STM32CubeIDE đã hỗ trợ sẵn mode debug, bạn có thể chọn debug/ đặt break point/ xem biến, run step by step.... nếu muốn.
Kết quả.
Đèn led ở chân PB9 sẽ đảo trạng thái mỗi 1s.
Chúc các bạn thành công.
Một số lưu ý tiện lợi phổ biến cho người mới dùng.
Nếu bạn chưa cài đặt các gói package cho STM32Mxcube hoặc cập nhật driver mới nhất cho debugger, lần đầu gen code hoặc flashing sẽ có thông báo yêu cầu cài đặt.
Nhấn Ctrl+ H hoặc Search trên task bar, cửa sổ tìm kiếm sẽ hiện ra, ở đây mình sẽ có nhiều lựa chọn tìm kiếm file, key word.
Một số bạn thích giao diện tối, các bạn có thể tùy chỉnh về giao diện tối. Window -> Preference -> Appearance-> Theme -> dard mode.
Tùy chỉnh phím tắt. Window -> Preference -> General -> Keys.
Cửa sổ Outline hiển thị tất cả define + function trong file được chọn.
Build hex file. Configuration để tạo được hex file khi build. Mục đích để release, share file build
Thông tin tìm hiểu thêm.
4.1 Cấu hình MXCube + gen code:
+ Video/tài liệu từ nhà sản xuất:
4.2 Edit code, build + flashing:
+ Video/tài liệu từ nhà sản xuất:
4.3 Link project create.
https://github.com/xuanminhblog/01_STM32CubeIDE_F108C8T6_GPIO
No comments:
Post a Comment