Đa số các project thực hiện trên STM32 khi trao đổi dữ liệu với máy tính hoặc các thiết bị khác thường sử dụng chức năng UART (Universal asynchronous receiver transmitter), tuy nhiên để thực hiện chức năng này bạn sẽ tốn 2 chân TX và RX trên chip STM32. Đồng thời UART không phải là chuẩn truyền thông nên muốn giao tiếp UART cần phải kết hợp với các IC giao tiếp như CH340 để tạo thành các chuẩn giao tiếp RS232,… Vì vậy để giảm thiểu chi phí phần cứng cũng như đơn giản hóa việc truyền/nhận dữ liệu giữa STM32 với máy tính, bài viết này sẽ hướng dẫn cách sử dụng tính năng USB CDC (Communication Device Class) trên chip STM32F103C8T6.Continue Reading

I2C – Inter- Intergrated Circuit là chuẩn truyền thông nối tiếp gồm 2 dây Clock và  Data được phát minh bởi hãng Philips. Chuẩn I2C trở nên thông dụng với nhiều module và IC sử dụng rộng rãi như: IC nhớ (24Cxxx), cảm biến góc nghiêng(MPU6050), module giao tiếp LCD (dùng IC PCF8574), IC thời gian thực (DS1307, DS3231, BQ32000), IC chuyển đổi tín hiệu số, tương tự… Chuẩn giao tiếp này hỗ trợ giao tiếp ở tốc độ 100Khz hoặc 400Khz. Continue Reading

Toán tử mũi tên được sử dụng để truy cập các thành viên của một structure khi chúng ta sử dụng biến con trỏ để làm việc với structure đó. Trong trường hợp nếu chúng ta muốn truy cập các thành viên của structure bằng biến structure thông thường thì chúng ta có thể sử dụng toán tử dấu chấm.Continue Reading

Bài viết này trình bày về tính năng USB Human Interface Device (USB HID) trên MCU STM32F103C8T6 với việc giả lập MCU thành chuột máy tính với 4 nút nhấn (nút click phải, nút click trái, nút di chuyển xuống, nút di chuyển qua phải). Trước khi bắt đầu project, chúng ta hãy cùng tìm hiểu USB là gì rồi mới đến cách thực hiện chức năng USB HID trên STM32F103C8T6.Continue Reading

NVIC – Nested vectored interrupt controller là bộ điều khiển xử lý ngắt có trong MCU STM32F103C8T6, việc lập trình sử dụng ngắt là một kĩ năng quan trọng khi các bạn lập trìnhh vi điều khiển. Nếu không có ngắt thì chương trình sẽ thực hiện theo một trình tự từ trên xuống dưới, ngắt giúp chương trình xử lý theo sự việc, đáp ứng được các sự kiện như sự thay đổi mức logic từ 1 chân vi điều khiển (ngắt ngoài), nhận một kí tự (ngắt nhận UART)…. Trong bài viết này, mình sẽ trình bày về ngắt ngoài (external interrupt) của vi điều khiển STM3232F103C8T6.Continue Reading

LCD 16×2 là một ngoại vi ouput được sử dụng rất nhiều trong các đề tài, dự án để hiển thị các thông tin dưới dạng text cho người dùng. Trong bài viết này sẽ giới thiệu và hướng dẫn các bạn giao tiếp hiển thị thông tin lên LCD 16×2 sử dụng MCU STM32F103C8T6 thông qua module I2C. Continue Reading