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
GPIO STM32 - Các Chế Độ Xuất/Nhập và Thực Hành LED/Button
I. Bốn Chế Độ Xuất GPIO
GPIO (General-Purpose Input/Output) có 8 chế độ hoạt động, trong đó có 4 chế độ xuất và 4 chế độ nhập.
Chế độ xuất cho phép điều khiển mức điện áp trên chân (cao/thấp) bằng cách ghi giá trị 0 hoặc 1.
Chế độ nhập cho phép đọc trạng thái điện áp đầu vào của chân.
Xuất thường (General Purpose Output): Điều khiển bởi CPU. ...
Đăng vào ngày 21 tháng 6 lúc 10:08
Hiểu về "Định nghĩa lại" trong GCC - weak
Khi làm việc với STM32, có một từ khóa __weak mà khi chúng ta định nghĩa lại hàm được đánh dấu bởi __weak, chương trình sẽ gọi hàm mới này thay vì hàm gốc.
Tính năng này tương tự như việc định nghĩa lại trong C++ và cũng giống như khái niệm về weak symbol được mô tả trong cuốn sách "The Self-Cultivation of a Programmer".
Weak Symbol v ...
Đăng vào ngày 19 tháng 6 lúc 05:31
Thao tác với Flash trên STM32
Giới thiệu về Flash trên STM32
STM32 sử dụng mô-đun flash gồm: khối lưu trữ chính, khối thông tin và các thanh ghi giao tiếp bộ nhớ flash.
Khối lưu trữ chính: Lưu trữ mã và dữ liệu hằng số (dữ liệu kiểu const).
Khối thông tin: Chia thành hai phần:
Bộ nhớ hệ thống: Lưu trữ chương trình bootloader.
Chọn byte: Cấu hình bảo vệ đọc và v ...
Đăng vào ngày 15 tháng 6 lúc 01:02
Hướng dẫn Điều Khiển Hiển Thị Màn Hình OLED (SSD1306 + STM32) Trong Keil MDK
Mục tiêu của hướng dẫn này là giải thích cách sử dụng Keil MDK để điều khiển màn hình OLED thông qua giao diện I2C và chip điều khiển SSD1306. Các bước chính bao gồm việc thiết lập môi trường dự án, viết các hàm điều khiển I2C, khởi tạo SSD1306, và thực hiện các chức năng hiển thị như ký tự, số và chuỗi.
1. Chuẩn bị Trước Khi Bắt Đầu
1.1 Yêu c ...
Đăng vào ngày 8 tháng 6 lúc 18:31
Cấu hình SysTick trên STM32CubeMX để tạo độ trễ chính xác
Nguyên lý hoạt động của bộ đếm SysTick
SysTick là bộ đếm 24-bit tích hợp trong nhân Cortex-M, hoạt động như bộ định thời hệ thống với các đặc điểm:
Đếm lùi từ giá trị nạp lại (LOAD)
Tự động tải lại giá trị khi về 0
Nguồn xung: HCLK hoặc HCLK/8
Ví dụ cấu hình tại 72MHz với nguồn HCLK:
Thời_gian_mỗi_xung = 1 / 72,000,000 ≈ 13.89ns
SysTick->LOA ...
Đăng vào ngày 4 tháng 6 lúc 02:26
Lập trình và Ứng dụng Timer trên STM32
Bộ định thời TIM (Phần một)
Bộ định thời (Timer) có thể đếm xung clock và tạo ngắt khi đạt giá trị đặt trước
Đơn vị cơ bản gồm bộ đếm 16-bit, bộ chia tần số và thanh ghi tự động nạp lại, cho phép định thời tối đa 59.65s với clock 72MHz
Cung cấp đa dạng chức năng: chọn nguồn clock, bắt giữ vào/ra, giao diện encoder, chế độ master-slave
Phân loạ ...
Đăng vào ngày 2 tháng 6 lúc 21:44
Hướng dẫn cài đặt Keil MDK 5 cho STM32: Bước đi đầu tiên cho người mới bắt đầu
Keil MDK 5: Hướng dẫn cài đặt và cấu hình môi trường phát triển STM32
Bạn có bao giờ gặp phải lỗi "no target connected" hay "cannot open core_cm3.h" khi lần đầu tiên sử dụng Keil? Dù đã tải gói cài đặt và nhấp "Next" liên tục, tại sao một chương trình LED nhấp nháy đơn giản nhất lại không chạy được?
Đừng lo lắng – đây là một chặng đường mà hầu ...
Đăng vào ngày 27 tháng 5 lúc 09:52
Hướng Dẫn Nâng Cấp Phần Mềm ST-LINK Revision 3.10.3
ST-LINK là giao diện lập trình và gỡ lỗi chuẩn cho các vi điều khiển STM32 và STM8, hỗ trợ giao tiếp qua cổng UART/JTAG/SWD/SWIM. Việc cập nhật phần mềm lên phiên bản 3.10.3 giúp cải thiện khả năng tương thích với các bộ vi điều khiển mới, tăng tốc độ truyền dữ liệu và mở rộng tính năng gỡ lỗi. Dưới đây là hướng dẫn chi tiết quy trình nâng cấp ...
Đăng vào ngày 16 tháng 5 lúc 06:24