C – Xử Lý Lỗi (Error Handling)
Học lập trình C với các khái niệm cơ bản về xử lý lỗi (Error Handling) như errno, perror(), strerror(), exit() và kiểm tra điều kiện xảy ra lỗi
C – Xử Lý Lỗi (Error Handling) Read More »
Học lập trình C với các khái niệm cơ bản về xử lý lỗi (Error Handling) như errno, perror(), strerror(), exit() và kiểm tra điều kiện xảy ra lỗi
C – Xử Lý Lỗi (Error Handling) Read More »
Trong ngôn ngữ lập trình, nếu một chương trình cho phép bạn gọi một hàm bên trong chính hàm đó, thì nó được gọi là lệnh gọi đệ quy (recursion call) của hàm.
C – Đệ Quy (Recursion) Read More »
Bài viết này sẽ hướng dẫn bạn cách định nghĩa một hàm có số lượng đối số biến thiên bằng ngôn ngữ C và thư viện stdarg.h
C – Đối Số Biến Thiên (Variable Arguments) Read More »
Người ta có thể truyền một số giá trị từ command line cho các chương trình C khi chúng được thực thi. Được gọi là các đối số dòng lệnh (command line arguments).
C – Command Line Arguments Read More »
Chương này giải thích về quản lý bộ nhớ động (dynamic memory management) trong C. Ngôn ngữ C cung cấp một số hàm để cấp phát và quản lý bộ nhớ trong ,stdlib.h
C – Quản Lý Bộ Nhớ (Memory Management) Read More »
Nội dung bao gồm:
9. Lập Trình Hướng Đối Tượng trong C
10. Trừu tượng dữ liệu (Data Abstraction)
11. Đóng gói (Encapsulation) và ẩn dữ liệu (data hiding)
12. Callback Functions
Device Driver Fundamentals in C (Phần 3) Read More »
Phần này giới thiệu về MQTT và cách sử dụng MQTT với ESP32.
Lập trình ESP32 với MQTT – Giới thiệu Read More »
Có nhiều cách để develop low-level driver cho microcontroller. Hai mô hình chung mà chúng ta sẽ xem xét là blocking driver và non-blocking driver.
Device Driver Fundamentals in C (Phần 2) Read More »
Chúng ta có thể sử dụng typedef để đơn giản hóa việc sử dụng con trỏ hàm (function pointer). Hãy tưởng tượng chúng ta có một số hàm, tất cả đều có cùng một chữ ký (signature), sử dụng đối số (argument) của chúng để in (print) ra một thứ gì đó theo những cách khác nhau:
Typedef cho Con Trỏ Hàm Read More »
Bộ nhớ (memory) trong mọi vi điều khiển (microcontroller) đều được chia thành các vùng (region) khác nhau liên quan đến các chức năng cụ thể của microcontroller.
Device Driver Fundamentals in C (Phần 1) Read More »
Gần như mọi hệ thống nhúng đều sử dụng một timer tích hợp để tính thời gian. Một timer thường sẽ chạy ở một hoặc mười mili giây (ms) và phối hợp với một scheduler để chạy hệ thống. Mỗi vi điều khiển (microcontroller) sẽ có các khả năng hơi khác nhau một chút vì nó liên quan đến timer peripheral, nhưng có một số điểm chung giữa tất cả microcontroller. Để xác định các khả năng của timer và xây dựng cơ sở hạ tầng cần thiết để tạo một timer driver mà có thể được tái sử dụng và tuân theo phương pháp ánh xạ bộ nhớ mảng con trỏ (pointer array memory-mapping methodology), thì có một số bước mà developer cần phải theo:
Writing Reusable Drivers (Phần 2) Read More »
Bài viết này hướng dẫn cách đọc tín hiệu analog input với ESP32 bằng Arduino IDE. Việc đọc tín hiệu analog rất hữu ích cho việc đọc giá trị từ các biến trở như chiết áp (potentiometer) hoặc cảm biến analog. Đọc tín hiệu analog input với ESP32 dễ dàng bằng việc sử dụng hàm analogRead(GPIO) với đối số là GPIO mà bạn muốn đọc. Bạn cũng có thể tham khảo các hướng dẫn khác về cách sử dụng chân analog với board ESP: ESP8266 ADC – Read
Lập trình ESP32 ADC – Đọc giá trị Analog với Arduino IDE Read More »