Chương trình giáo dục
20 Sections
117 Lessons
10 Weeks
Expanse all sections
Collapse all sections
Giới thiệu về khóa học
1.1
Tổng quan về khóa học
1.2
Tổng quan về lập trình nhúng
1.3
Phân loại các chức danh trong nghề lập trình
1.4
Các định hướng trong lập trình nhúng
Kiến thức cơ bản về vi điều khiển
2.1
Cấu trúc vi điều khiển, cách vi điều khiển hoạt động
2.2
Vi điều khiển họ ARM và cortex M3
2.3
Memory map của STM32F103
Kiến thức cơ bản về trình biên dịch
3.1
Tầm quan trọng của trình biên dịch
3.2
Quá trình biên dịch của ngôn ngữ C
3.7
Phân vùng (section) bộ nhớ trên Flash
3.8
Linker script của stm32
Quá trình startup của vi điều khiển
4.1
Memory Map
4.2
Bootoption là gì, các phân vùng khởi động của vi điều khiển
4.3
Quá trình khởi động của vi điều khiển
4.4
File startup và Vector Table là gì
4.5
Thực hành: Tìm địa chỉ của biến, hàm, hằng …
Cài đặt Môi trường Phát triển và các công cụ
5.1
Các phần mềm để lập trình STM32
5.2
Option 1: Cài đặt Cube IDE
5.3
Tạo chương trình và biên dịch chương trình
5.4
Flash vào STM32 và các lỗi thường gặp
5.5
Các công cụ debug trên STM32 CubeIDE
5.6
Option 2: Cài đặt VS Code, Trình biên dịch
5.7
Giải thích makefile và cách chỉnh sửa makefile
5.8
Flash chương trình sử dụng VS Code
Kiến thức cơ bản về thanh ghi và cách làm việc với thanh ghi
6.1
Memory map và register address
6.2
Con trỏ hoạt động như thế nào
6.3
Định nghĩa cấu trúc con trỏ theo CMSIS
6.5
Thực hành: Sử dụng con trỏ để đọc, ghi vào thanh ghi
6.6
Thực hành: Định nghĩa một cấu trúc con trỏ và ghi dữ liệu vào thanh ghi
Lập trình GPIO và Thực hành Các Chế độ I/O
7.1
Tổng quan về GPIO và sơ đồ khối của bộ GPIO
7.2
Các thanh ghi GPIO và cách cấu hình GPIO
7.3
Các mode của GPIO output
7.4
Thực hành: GPIO output chế độ push/pull
7.5
Các mode của GPIO Input
7.6
Thực hành: GPIO input pull up đọc tín hiệu nút nhấn
7.7
Thực hành: kết hợp nút nhấn và Led
7.8
Kĩ thuật Scan để hiển thị Led 7
7.9
Thực hành: Hiển thị giá trị sử dụng led 7 thanh
7.10
Kĩ thuật Scan để đọc Matrix Keypad 3×4
7.11
Thực hành: Nhập số và hiển thị lên led 7
Delay cơ bản và Delay Systick Timer
8.1
Hàm delay bằng while loop
8.2
Timer Systick
8.3
Thực hành: Tạo hàm delay_ms bằng while và systick timer (blocking mode)
Ngắt và trình quản lý ngắt NVIC
9.1
Khái niệm và ngắt và lợi ích khi sử dụng ngắt
9.2
Bảng vector ngắt
9.3
Trình quản lý ngắt NVIC
9.4
Quy trình thiết lập ngắt và viết hàm xử lý ngắt
9.5
Thực hành: Viết hàm delay bằng systick timer (non-blocking mode) sử dụng ngắt
AFIO và Remap Chức Năng Ngoại Vi
10.1
AFIO là gì?
10.1
Thanh ghi AFIO và Remap pin table
10.1
Thực hành remap Pin cho EXTI và UART
Ngắt ngoài EXTI
11.1
Tổng quan về ngắt ngoài EXTI, sơ đồ khối, cách hoạt động
11.2
Thanh ghi EXTI
11.3
Cấu hình ngắt EXTI, các sự kiện ngắt
11.4
Thực hành: Đọc nút nhấn dùng EXTI
ADC – Chuyển Đổi Tín Hiệu tương tự sang số
12.1
Tổng quan về bộ ADC và các tham số của bộ ADC
12.2
Xử lý sự kiện Convert Complete
12.3
Các thanh ghi ADC
12.4
Thực hành: ADC với các chế độ sử dụng polling
12.5
Thực hành: ADC với các chế độ sử dụng ngắt
12.6
Thực hành: Đọc ADC 4 kênh và hiển thị điện áp lên led 7
DMA
13.1
Lý thuyết về DMA
13.2
Thiết lập DMA Pripheral to Mem
13.3
Thực hành: Truyền dữ liệu ADC sang Memory bằng DMA
13.4
Thiết lập DMA Mem to Mem
13.5
Thực hành: Truyền dữ liệu Memory to Memory dùng DMA
13.5
Thực hành: Nhận dữ liệu UART bằng DMA
13.5
Thiết lập DMA Mem to Pripheral
RCC - Nguồn clock cho vi điều khiển
14.3
Lý thuyết về RCC
14.4
Thực hành: Tính toán tần số Clock và cấu hình Clock cho STM32
14.5
Thực hành: Xây dựng thư viện RCC
Timer - Bộ định thời cơ bản Time Base
15.1
Nguyên lý hoạt động của Timer
15.2
Các thanh ghi của Timer, cách cấu hình Timer
15.3
Tính toán thời gian định thời cho timer
15.4
Thực hành: Sử dụng timer bật tắt led
15.5
Cấu hình ngắt cho Timer
15.6
Thực hành: Tạo xung từ Timer sử dụng ngắt
Timer - Chế độ điều chế độ rộng xung PWM
16.1
Lý thuyết về PWM
16.3
Thực hành: Sử dụng PWM phát xung
16.3
Nguyên lý hoạt động của Servo SG90
16.3
Thực hành: Điều chỉnh góc quay servo dùng PWM
16.3
Nguyên lý pha màu RGB
16.3
Thực hành: Sử dụng mã màu 16bit hiển thị màu trên led RGB
Timer - Đo độ rộng xung Input Capture
17.1
Khái niệm Input Capture
17.1
Nguyên lý đo thời gian sử dụng Input Capture
17.1
Thực hành: Đo chu kì xung sử dụng Input Capture
17.1
Chuẩn hồng ngoại NEC là gì
17.1
Thực hành: Đọc tín hiệu từ điều khiển hồng ngoại sử dụng chuẩn NEC
UART
18.1
UART là gì, nguyên lý hoạt động, các tham số quan trọng
18.2
Thanh ghi bộ UART
18.3
Cấu hình UART transmit
18.4
Thực hành: Truyền “Hello world” từ STM32 về máy tính và phân tích frame truyền
18.7
Thực hành: Nhận dữ liệu sử dụng ngắt UART
18.8
Thực hành: Nhận dữ liệu UART bằng DMA
18.9
Ring buffer
SPI
19.1
Lý thuyết về SPI
19.2
Các thanh ghi SPI
19.3
Thiết lập SPI Master
19.4
Thực hành: Truyền dữ liệu SPI và phân tích frame truyền với Logic Analyzere
19.5
Thiết lập SPI Slave
19.6
Thực hành: Nhận dữ liệu SPI sử dụng polling và ngắt
19.7
IC 25Q80 và cách giao tiếp
19.8
Thực hành: Đọc ghi dữ liệu vào IC 25Q80
19.9
Mở rộng: LCD ST7735
19.10
Mở rộng: Thực hành hiển thị chữ, ảnh lên màn hình LCD ST7735
I2C
20.1
Lý thuyết về I2C
20.2
Các thanh ghi bộ I2C
20.3
Cấu hình I2C Master Mode
20.4
Thực hành: Phân tích I2C Frame sử dụng Logic Analyzer
20.5
I2C receive
20.6
Giới thiệu về IC thời gian thực DS3231
20.7
Đoc ghi dữ liệu vào DS3231
20.8
Thực hành: Truyền nhận dữ liệu với DS3231 sử dụng ngắt
20.9
Mở rộng: Giới thiệu module LCD 1602 I2C
20.10
Thực hành: Hiển thị màn hình LCD 1602 I2C
20.11
Mở rộng: Giới thiệu màn hình LCD Oled SSD1306
20.12
Thực hành: Hiển thị màn hình Oled SSD1306
Khóa học lập trình STM32 thanh ghi
Search
This content is protected, please
login
and enroll in the course to view this content!
Home
khóa học
Search
Search
Account
Login with your site account
Lost your password?
Remember Me