Hướng dẫn sử dụng STM32CubeMX và Keil C để lập trình STM32

Hướng dẫn sử dụng STM32CubeMX và Keil C để lập trình STM32

Phần mềm STM32CubeMX là một phần mềm hỗ trợ việc cấu hình các chức năng cho các dòng vi điều khiển STM32 thông qua giao diện đồ họa và tạo ra code từ các cấu hình đó. Keil C IDE là một môi trường phát triển tích hợp giúp chúng ta có thể viết code, compile, debugs, nạp chương trình xuống vi điều khiển. Bài viết này hướng dẫn cho những bạn mới bắt đầu tìm hiểu dòng vi điều khiển STM32 cách tiếp cận và sử dụng 2 phần mềm này.

Cách phân biệt các chân sinh ra ngắt trên vi điều khiển STM32

Cách phân biệt các chân sinh ra ngắt trên vi điều khiển STM32

Làm sao để biết yêu cầu ngắt được tạo ra từ chân GPIO nào khi chương trình của bạn sử dụng nhiều chân External Interrupt? Trong bài viết này, mình sẽ giúp các bạn giải quyết được vấn đề trên với các ví dụ cụ thể. Mình sử dụng vi điều khiển STM32F103C8T6, cấu hình bằng STM32CubeMX sau đó code bằng Keil C IDE, sử dụng thư viện HAL. 

STM32F103 – Vấn đề ghi giá trị cho 1 chân GPIO_INPUT và GPIO_EXTI

STM32F103C8T6 – Từ 1 câu chuyện thực tế: việc ghi giá trị vào 1 chân đã được cấu hình GPIO INPUT hay GPIO External Interrupt là có tác dụng, điều này có thể dẫn đến chương trình của bạn bị lỗi. Mình đã debug quan sát giá trị thanh ghi và đo đạc thực tế trên chân vi điều khiển để kiểm tra.

Hướng dẫn lập trình STM32F1 sử dụng Arduino IDE

           Hôm nay mình xin chia sẻ 1 bài hướng dẫn lập trình STM32F1 trên nền tảng IDE của Arduino. Bởi IDE Arduino quá quen thuộc với chúng ta, 1 học sinh cấp 2 có thể

Kiểu dữ liệu sử dụng thư viện stdint.h trong C/C++

Kiểu dữ liệu sử dụng thư viện stdint.h trong C/C++

Bài viết có thể giúp các bạn có 1 thói quen khai báo và sử dụng kiểu dữ liệu tốt hơn, có thể hiểu về kiểu dữ liệu để tránh được các lỗi sai cơ bản, và cũng không thấy xa lạ khi tham khảo một file code nào đó mà có các kiểu dữ liệu uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t…

Cấu hình ưu tiên ngắt vi điều khiển STM32 trên CubeMX

Cấu hình ưu tiên ngắt vi điều khiển STM32 trên CubeMX

Vi điều khiển STM32 hỗ trợ rất nhiều ngắt khác nhau(interrupts) và chúng được quản lý bởi bộ NVIC (Nested Vector Interrupt Controller). Vậy chuyện gì xảy ra nếu có 2 yêu cầu ngắt đang chờ để được phục vụ hoặc nếu một trình phục vụ ngắt (ISR) đang được thực hiện và có 1 yêu cầu ngắt khác xuất hiện? Người lập trình hoàn toàn có thể cấu hình được các ưu tiên ngắt để xử lý các tình huống trên theo mong muốn bằng cách cấu hình NVIC trên phần mềm STM32CubeMX. 

Quá trình thực hiện ngắt của vi điều khiển – MCU Interrupt processing

Quá trình thực hiện ngắt của vi điều khiển – MCU Interrupt processing

Bình thường, vi điều khiển sẽ thực thi các lệnh do người dùng viết một cách tuần tự từ trên xuống. Tuy nhiên, nó cũng được thiết kế để sẵn sàng xử lý các tình huống, sự kiện do tác động từ bên ngoài của con người, các cảm biến, hoặc từ các ngoại vi bên trong như Timer, UART, ADC…vv… mà chúng ta không biết, không dự đoán trước được khi nào tình huống, sự kiện đó sẽ xảy ra. 

Real time clock (RTC) trên STM32F103C8T6

Real time clock (RTC) trên STM32F103C8T6

Bài viết này sẽ giúp các bạn tìm hiểu về bộ RTC trên vi điều khiển STM32F103C8T6 và thực hành lập trình làm việc với ngoại vi này, sử dụng UART hoặc Debug để xem kết quả. Bên ccạnh đó TAPIT cũng có bài viết hướng dẫn giao tiếp vi điều khiển với IC RTC DS3231 thông qua I2C.