Chương trình giáo dục

  • 20 Sections
  • 117 Lessons
  • 10 Weeks
Expanse all sectionsCollapse 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

This content is protected, please login and enroll in the course to view this content!
Next Tổng quan về lập trình nhúng Next
Homekhóa học
Search

Search

    Account

    Login with your site account

    Lost your password?