Giải quyết vấn đề Keil không tìm thấy tệp .h: Hướng dẫn chi tiết cho người mới bắt đầu

Trong quá trình phát triển nhúng, bạn có thể gặp phải lỗi sau khi mở dự án trong Keil và biên dịch mã: // main.c #include "main.h" #include "stm32f4xx_hal.h" // ← Lỗi xảy ra ở dòng này Lỗi này không phải do mã của bạn sai hay máy tính bị nhiễm virus. Đây là một bài học cơ bản mà mọi nhà phát triển nhúng đều cần hiểu rõ. Nguyên nhân gốc rễ: ...

Đăng vào ngày 20 tháng 7 lúc 22:02

Thí nghiệm nhấp nháy LED trên STM32 sử dụng GPIO

1. Chuẩn bị phần cứng: 1 bo mạch STM32F103C8T6 tối thiểu 1 bộ ghi ST-LINK V2 Tuỳ chọn dây nối DuPont LED tích hợp - chân GPIOC13 2. Hàm delay (Delay.h) Xem mã nguồn #ifndef _DELAY_H_ #define _DELAY_H_ #include "stm32f10x.h" // Device header void delayMicroseconds(uint32_t us); void delayMilliseconds(uint32_t ms); void de ...

Đăng vào ngày 19 tháng 7 lúc 10:56

Phát triển ngoại vi MCU từ nguyên lý đến thực thi thực tế

Trong phát triển nhúng, các ngoại vi cốt lõi của MCU đóng vai trò cầu nối giữa phần cứng và phần mềm. Dù là điều khiển động cơ trong hệ thống công nghiệp hay giao tiếp cảm biến trên thiết bị IoT, đều phụ thuộc vào việc lập trình sâu cho các module như GPIO, UART, I2C. Bài viết này tổng hợp kinh nghiệm thực tế từ nền tảng STM32 (lõi Cortex-M) v ...

Đăng vào ngày 16 tháng 7 lúc 05:33

Hướng dẫn sử dụng dự án DaisyExamples

1. Cấu trúc thư mục của dự án Dự án DaisyExamples có cấu trúc thư mục như sau: DaisyExamples/ ├── DaisySP/ ├── libDaisy/ ├── pod/ ├── patch/ ├── patch_sm/ ├── patch_fx/ ├── seed/ ├── seed_modular/ ├── petal/ ├── quad/ ├── examples/ ├── README.md └── ... DaisySP/: Chứa mã nguồn và tài nguyên của thư viện xử lý âm thanh DaisySP. libDaisy/: Chứa ...

Đăng vào ngày 11 tháng 7 lúc 11:52

Phân tích chi tiết quy trình khởi động U-Boot

Giới thiệu Việc nắm vững quy trình khởi động của U-Boot giúp hiểu rõ về các thiết bị ngoại vi được khởi tạo ở đâu, từ đó khi cần điều chỉnh các trình điều khiển thiết bị ngoại vi, chúng ta sẽ có cơ sở rõ ràng. I. Linker Script u-boot.lds Để phân tích quy trình khởi động của U-Boot, trước tiên cần xác định "điểm vào" (entry point) - dòng lệnh đ ...

Đăng vào ngày 8 tháng 7 lúc 11:18

Phân tích dữ liệu và triển khai giao thức ModbusTCP trên vi điều khiển STM32

Tổng quan về ModbusTCP trong hệ thống nhúng ModbusTCP là một biến thể của giao thức Modbus truyền thống, được thiết kế để chạy trên nền tảng TCP/IP qua môi trường Ethernet. Khác với Modbus RTU dựa trên RS-485 gặp hạn chế về khoảng cách và tốc độ, ModbusTCP tận dụng hạ tầng mạng công nghiệp để truyền tải dữ liệu với băng thông lớn và độ tin cậy ...

Đăng vào ngày 6 tháng 7 lúc 14:18

Quản lý năng lượng và chế độ tiết kiệm điện trên vi điều khiển STM32

Trong các hệ thống nhúng, việc kiểm soát nguồn điện là yếu tố then chốt để kéo dài tuổi thọ pin và đảm bảo hoạt động ổn định. Module PWR (Power Control) trên STM32 cung cấp khả năng giám sát điện áp và chuyển đổi giữa các chế độ tiêu thụ điện thấp, phù hợp cho thiết bị IoT, đồng hồ thông minh hoặc thiết bị y tế di động. Chức năng chính của mod ...

Đăng vào ngày 6 tháng 7 lúc 01:27

Đo tần số chính xác trên STM32 bằng chế độ bắt tín hiệu đầu vào

Chế độ bắt tín hiệu đầu vào (Input Capture) của các bộ định thời (timer) trên vi điều khiển STM32 cho phép đo chính xác tần số, chu kỳ và độ rộng xung của tín hiệu ngoài — đặc biệt hiệu quả với tín hiệu xung vuông, cảm biến quang học hoặc mã hóa vị trí. Bài viết này trình bày phương pháp triển khai toàn bộ quy trình đo tần số dựa trên phần cứng ...

Đăng vào ngày 2 tháng 7 lúc 10:42

Các điểm chính khi bắt đầu với Keil MDK: Hướng dẫn sử dụng Trình cấu hình đồng hồ

Khám phá quy trình cấu hình đồng hồ trong Keil MDK: Từ cơ bản đến nâng cao Bạn đã từng gặp tình huống sau chưa? Viết xong đoạn code UART nhưng dữ liệu nhận được toàn ký tự lạ; hoặc thiết bị USB cắm vào máy tính không được nhận diện. Sau hàng giờ kiểm tra, bạn phát hiện ra nguyên nhân thật đơn giản: Đồng hồ hệ thống chưa được cấu hình đúng! Tron ...

Đăng vào ngày 28 tháng 6 lúc 02:13

Phân tích file khởi động STM32 và script liên kết, cùng với việc thực hiện lại file khởi động STM32 bằng C

Trong phát triển STM32, file khởi động được cung cấp bởi ST offic chính cho toolchain GCC được viết bằng assembler ARM. Bài viết này sẽ phân tích cấu trúc của file đó và thực hiện lại nó bằng ngôn ngữ C. Chúng ta sẽ lấy ví dụ từ dự án STM32F103C8T6 do ST cung cấp, bao gồm file khởi động startup_stm32f10x_md.s và script liên kết stm32_flash.ld. ...

Đăng vào ngày 26 tháng 6 lúc 16:48