Hướng dẫn tạo project với STM32CubeMX.

BÀI 01:
Hướng dẫn tạo project với STM32CubeMX.

  1. Giới thiệu sơ lược.
  2. STM32CubeMX là một phần mềm được cung cấp miễn phí giúp ích cho việc cấu hình ngoại vi, clock, tính toán dòng tiêu thụ, tạo project với nhiều dòng chip ARM STM32… Việc tạo project trở nên đơn giản bằng việc lựa chọn các ngoại vi cần thiết, cấp lock tùy chỉnh mà không cần liên quan đến code.

    Việc tạo project với thư viện chuẩn (standard library) là khá khó khăn vì cần nhiều bước để tạo ra project mới. STM32CubeMX ra đời như một lựa chọn để thay thế điều đó, với giao diện trực quan chúng ta sẽ dể dàng lập trình và có cái nhìn tổng quan hơn.

    Thư viện đi kèm với phần mềm này là STM32Cube HAL, gọi tắt là thư viện HAL, bộ thư viện này được chuẩn hóa, giúp đồng nhất giữa các dòng F0,F1,F2,F3,F4… Nhà sản xuất cũng cung cấp đầy đủ các ví dụ mẫu đi kèm với thư viện này. Cách tốt nhất để tự học là tự tìm hiểu các ví dụ mẫu này.

    Lưu ý: STM32CubeMX không phải là một trình biên dịch, nó chỉ là công cụ để sinh ra code, chúng ta vẫn phải dùng các trình biên dịch thông thường để quan sát, debug, lập trình, sửa lỗi…. Nếu bạn muốn tìm hiều sâu về vi điều khiển hãy bắt đầu nó bằng thư viện chuẩn(standard library) và ngược lai, nếu bạn muốn sử dụng một cách nhanh chóng hãy sử dụng thư viện HAL(STM32Cube HAL).

    Một số tính năng chính:

    • Dễ dàng quan sát các tính năng, thông số của IC.
    • Có cái nhìn tổng quan, bao quát hơn về lựa chọn, cấu hình chân, clock, ngoại vi.
    • Lựa chọn các board thí nghiệm của ST với các thông số cài đặt trước hoặc một MCU cụ thể.
    • Dễ dàng cấu hình ngoại vi, clock, các thông số và tự động sinh ra code.
    • Dễ dàng chuyển đổi giữa các loại MCU STM32 bằng cách tạo project mới một cách nhanh chóng.
    • Dễ dàng xuất file PDF các chân, tính năng… đã cấu hình.
    • Dễ dàng tạo ra project với nhiều trình biên dịch được lựa chọn.
    • Tính toán, quản lí năng lượng dễ dàng hơn.
    • Tự động cập nhật thư viện khi có bản cài đặt mới.
    • Thư viện được đồng nhất nên sẽ không có quá nhiều thay đổi khi chuyển đổi giữa các loại MCU. Ví dụ chuyển từ F1 qua F3, hay F4 và ngược lại.
  3. Cấu hình cơ bản GPIO.
  4. Dòng MCU mà mình sử dụng ở đây là  STM32F303CCT6 nên các ví dụ sẽ sử dụng loại MCU này luôn. Một vài thông số quan trọng mà dòng chip này có là  :

    • Thuộc dòng chip lập trình ARM cortex M4, 32 bit.
    • 48 chân, tốc độ lock tối đa là 72Mhz, bộ nhớ chương trình(flash) 256kbytes, SRAM 40kbytes.
    • Đầy đủ các chức năng như:
      • 4 bộ ADC 12 bit với nhiều channel, 2 kênh DAC 12 bit.
      • 13 timer :  2 watchdog timer, 1 systemtick timer, 10 timer thường với nhiều mode cấu hình.
      • Các giao tiếp : 1 CAN, 1 USB, 3 UART, 3 SPI, 2 I2C , 2 I2S.
      • 1 bộ RTC với đầy đủ chức năng.
      • Các cổng vào OPAMP, COMP.
      • Có touch sensing với 6 group với nhiều kiểu thiết kế để nâng cao hơn số nút nhấn có thể - cái này mình đã thử, khá ngon.
    1. B1 : mở STM32CubeMX, chọn new project để tạo project mới, load project để mở 1 project đã tạo.