Lập trình hướng sự kiện trên Arduino với thư viện Eventually
Eventually là một thư viện mã nguồn mở mạnh mẽ dành cho hệ sinh thái Arduino, được thiết kế để chuyển đổi mô hình lập trình tuần tự truyền thống sang mô hình hướng sự kiện (event-driven). Cách tiếp cận này giúp mã nguồn trở nên sạch sẽ, dễ bảo trì và tối ưu hóa việc xử lý đa nhiệm mà không cần sử dụng quá nhiều cấu trúc điều khiển phức tạp.
1. ...
Đăng vào ngày 10 tháng 10 lúc 20:13
Công cụ gỡ lỗi nối tiếp USB đa nền tảng với .NET MAUI: Khám phá MauiUsbSerialForAndroid
Công cụ gỡ lỗi nối tiếp USB đa nền tảng với .NET MAUI: Khám phá MauiUsbSerialForAndroid
Trong lĩnh vực phát triển hệ thống nhúng và gỡ lỗi thiết bị IoT, một công cụ gỡ lỗi nối tiếp USB là trợ thủ đắc lực không thể thiếu. Tuy nhiên, các công cụ truyền thống thường gặp phải các hạn chế như khả năng tương thích đa nền tảng kém, cấu hình phức tạp v ...
Đăng vào ngày 9 tháng 10 lúc 22:42
Giải mã quy tắc đặt tên và ý nghĩa các ký tự trên vi điều khiển STM32F103
Việc hiểu rõ ý nghĩa các ký tự trong mã hiệu của vi điều khiển STM32 là bước đầu tiên quan trọng để các kỹ sư nhúng lựa chọn đúng linh kiện cho dự án. Một mã hiệu đầy đủ như STM32F103C8T6 chứa đựng toàn bộ thông số về cấu hình phần cứng, dung lượng bộ nhớ và đặc tính vật lý của con chip.
1. Cấu trúc tổng quát của mã hiệu STM32
Quy tắc đặt tên ...
Đăng vào ngày 22 tháng 9 lúc 02:57
Sử dụng giao thức MQTT tích hợp trong SIMCom A7680C
Để sử dụng giao thức MQTT tích hợp sẵn trong module SIMCom A7680C, chúng ta cần thực hiện hai bước chính: khởi tạo mạng và áp dụng giao thức MQTT. Dưới đây là cách triển khai chi tiết.
Bước 1: Khởi tạo kết nối mạng
/**
* @brief Hàm kiểm soát trạng thái mạng của module
*/
void Control_Network_Module(void) {
static uint32_t led_timer = 0 ...
Đăng vào ngày 11 tháng 9 lúc 00:43
Phân Tích Luồng Giao Tiếp CAN và Máy Trạng Thái Trục Trong Odrive
Giới thiệu
Trong lĩnh vực điều khiển chuyển động nhúng, Odrive nổi bật là một nền tảng điều khiển động cơ mạnh mẽ nhờ kiến trúc phần cứng mã nguồn mở và thiết kế phần mềm linh hoạt. Bài viết này sẽ đi sâu vào hai mô hình đồng thời cốt lõi trong firmware của Odrive: vòng lặp luồng máy chủ CAN (thường được triển khai trong CanBusHandler::serviceL ...
Đăng vào ngày 24 tháng 7 lúc 18:51
Thiết Kế PCB Bo Mạch Chủ AM335X: Từ Lý Thuyết Đến Thực Tiễn
Bo mạch chủ AM335X, dựa trên bộ xử lý AM335x của Texas Instruments (TI), là một nền tảng hiệu suất cao, tiêu thụ điện năng thấp, được thiết kế đặc biệt cho phát triển hệ thống nhúng. Nền tảng này hỗ trợ nhiều hệ điều hành và tìm thấy ứng dụng rộng rãi trong các lĩnh vực như điều khiển công nghiệp, Internet Vạn Vật (IoT) và nhà thông minh. Các t ...
Đăng vào ngày 22 tháng 7 lúc 23:51
Lớp TCP Client cho Windows CE
Trước đây tôi chủ yếu sử dụng UDP để giao tiếp với máy chủ, nhưng dự án mới này yêu cầu sử dụng TCP để thực hiện kết nối.
Tôi đã tạo một lớp TCP client và cũng xây dựng một server để kiểm thử. Dưới đây là mã nguồn của lớp TCP client:
Header file:
1 // CeTcpClient.h: interface for the CCeTcpClient class.
2 //
3 /////////////////////////// ...
Đăng vào ngày 18 tháng 7 lúc 17:58
C++ Nhúng Hiện Đại: Di chuyển ngữ nghĩa không phải là ma thuật, mà là thực hành kỹ thuật chuyển giao tài nguyên
Trong lập trình nhúng C++, khi viết lớp truyền dữ liệu qua USB và cần chuyển một vùng đệm DMA 4KB từ hàng đợi nhận sang luồng xử lý, bạn có thể viết như sau:
class DMABuffer {
std::array<uint8_t, 4096> data;
size_t length;
public:
DMABuffer(size_t len) : length(len) {
// Dữ liệu 4KB đã sẵn sàng
}
};
void usb ...
Đăng vào ngày 13 tháng 7 lúc 03:29
Phương pháp lấy số seri thẻ SD trên Windows CE 6.0
Trong cộng đồng lập trình nhúng, việc bảo vệ phần mềm thông qua mã hóa hoặc đọc số seri phần cứng luôn là chủ đề nóng. Hai phương pháp này có ưu và nhược điểm riêng. Đối với cách đọc số seri phần cứng, nó phụ thuộc nhiều vào thiết bị cụ thể. Thông thường, CPU và thẻ T-Flash có thể chứa số seri. Bài viết này sẽ trình bày chi tiết cách đọc số ser ...
Đăng vào ngày 12 tháng 7 lúc 12:58
Giới thiệu về công cụ lượng hóa DNN: QKeras
Giới thiệu về QKeras
QKeras là một thư viện mở rộng của Keras, được thiết kế để lượng hóa các mô hình học sâu, giúp chuyển đổi trọng số từ định dạng số thực sang định dạng độ chính xác thấp. Mục tiêu chính của QKeras là tối ưu hóa lưu trữ và tốc độ suy luận của mô hình, đặc biệt phù hợp cho các thiết bị có tài nguyên hạn chế như thiết bị di độn ...
Đăng vào ngày 3 tháng 7 lúc 05:59