Thư Viện Mã Nguồn Mở Cho SMT32-Opencmx (Phần 1)

congluu123

Banned
Tham gia
2/4/2016
Bài viết
0
Phần 1: KIẾN TRÚC THƯ VIỆN OPENCMX
Thư viện OpenCMX được ARM Việt Nam viết dựa trên nền tảng thư viện ngoại vi chuẩn của ST giúp những ai mới bắt đầu tìm hiểu lập trình STM32 trở nên cực kì dễ dàng và nhanh chóng.

Opencmx_Architecture.JPG

Thư mục OpenCMX gồm có các phần như sau:
Opencmx_Folder.JPG

  • chip_vendor_stdperiph_lib : chứa thư viện chuẩn của ST và lõi CMSIS.
  • cmx_api : phần cốt lõi của bộ thư viện OpenCMX, chứa các hàm API (Application Program Interface) giúp cho việc lập trình trở nên dễ dàng và nhanh chóng.
  • cmx_core : bao gồm phần trừu tượng hóa phần cứng.
  • cmx_test : gồm các ví dụ mẫu hướng dẫn sử dụng các hàm API của thư viện OpenCMX.
  • cmx_utility : các tiện ích mở rộng.
Các hàm API của thư viện OpenCMX sẽ gọi xuống các hàm thư viện chuẩn của ST để truy xuất trực tiếp đến các ngoại vi của chíp STM32 như các I/O, UART, ADC, DAC, SPI…
Trong bài này chúng ta sẽ bắt đầu làm quen với thư viện OpenCMX thông qua việc sử dụng các hàm API của khối GPIO. Các bài viết tiếp theo sẽ làm quen với API của UART, ADC, DAC, EXTI, SPI, I2C…

Khối hàm API của GPIO nằm trong 2 tập tin cmx_gpio.h (chứa khai báo hàm) & cmx_gpio.c (chứa định nghĩa hàm):
  • void cmxPortOut.init(uint8_t pin) : khởi tạo pin ở chế độ output
  • void cmxPortOut.high(uint8_t pin): xuất ra mức 1 ở pin
  • void cmxPortOut.low(uint8_t pin): xuất ra mức 0 ở pin
  • void cmxPortOut.toggle(uint8_t pin): đảo mức logic hiện tại của pin
  • uint8_t cmxPortOut.read(uint8_t pin): đọc về mức logic hiện tại của pin
GPIO_SCH.JPG

Trong ví dụ này chúng ta sẽ dùng pin PB8 của chíp STM32F103 lái LED (khả năng cấp dòng của các I/O lên đến 20mA). Chương trình chính được viết trên nền Keil-MDK4.2 và kít OPENCMX-STM3210D:
#include "cmx.h"
#define led PB8 // connect pin PB8 to led

// GPIO APIs
int main(void)
{
// config pin PB8 as output
cmxPortOut.init(led);

while(1)
{
/* Insert delay */
Delay(5);

// toggle led
cmxPortOut.toggle(led);
}
}
GPIO_Keil.JPG

Sau khi biên dịch chương trình xong, các bạn có thể chạy simulink trên Keil để xem chân PB8 của portB nhấp nháy hoặc nạp chương trình (Opencmx.hex) vào kít OPENCMX-STM3210D để chạy thử.
Lời kết: Giai đoạn đầu OpenCMX sẽ được build thành thư viện Opencmx.lib để thử nghiệm và đánh giá phản hồi từ người dùng, sau giai đoạn thử nghiệm thì OpenCMX sẽ được ARM Việt Nam mở hoàn toàn mã nguồn để các bạn có thể tham khảo và cùng phát triển OpenCMX với các thành viên của ARM Việt Nam. Rất mong nhận được ý kiến đóng góp của các bạn.
Bạn Có Đam Mê Với Thiết Kế Vi Mạch - Bạn Muốn Có Mức Lương 1000USD
BạnChưa Biết Phải Gửi Gắm Ước Mơ Của Mình Nơi Đâu
Hãy Đến Với Nghành Vi Mạch Tại SEMICON

dang%20ky%20ngay.png

Hotline: 0972.800.931 - 0938.838.404 (Ms Hồng)
 
×
Quay lại
Top