Kỹ thuật điện tử & Điện lạnh

Lập trình STM32 USB HID Host giao tiếp với chuột và bàn phím máy tính kiến thức mới năm 2023

Lập trình STM32 USB HID Host giao tiếp với chuột và bàn phím máy tính – Cập nhật kiến thức mới nhất năm 2023

Trong bài này chung ta sẽ cùng học STM32 HID Host, biến STM32 giống như 1 chiếc máy tính để giao tiếp với chuột và bàn phím. Đọc dữ liệu rồi hiển thị ra màn hình.

Bài 3 phần STM32F407 trong Serie Học STM32 từ A tới Z

USB HID Host là gì?

Bài trước chúng ta đã tìm hiểu về USB HID device, chúng ta đã hiểu được giao thức USB HID là gì, và cách biến STM32 thành 1 con chuột hoặc 1 chiếc bàn phím máy tính.

Có 2 khái niệm cần lưu ý trong giao thức USB đó là :

  • USB Host: Là phần đưa ra các lệnh với thiết bị trực tiếp điều khiển các thiết bị. Trong bài trước đó chính là chiếc máy tính của chúng ta
  • USB Device: Là các thiết bị sử dụng giao thức USB để giao tiếp với Host, nhận lệnh từ Host. Đó có thể là chuột, máy tính, tay chơi game,…

Vậy USB HID Host chính là biến STM32 của chúng ta giống như 1 chiếc máy tính, điều khiển và nhận dữ liệu từ các thiết bị HID device khác sau đó xử lý và hiển thị dữ liệu ra ngoài.

Lập trình STM32 USB HID Host giao tiếp với chuột máy tính

Cấu hình trên CubeMX

Vẫn như các bài trước, các bạn cấu hình SYS với bebug serial wire

Phần Clock chọn HSE crystal, setup 48mhz cho usb

stm32 host hid clock

Chúng ta sẽ sử dụng UART3 để xem dữ liệu mà thiết bị gửi về.

STM32 Host HID

Sau đó chọn Connective là USB Host_Only, tích vào Active_VBUS để dùng nguồn điện USB nuôi thiết bị, vì đa số các thiết bị USB không có nguồn cấp, phải sử dụng nguồn từ HOST.

stm32 host hid config usb

Tab USB_HOST chọn Class HID

stm32 host hid config usb 2

Tiếp tới để kích hoạt VBUS chúng ta sẽ dùng chân PC0, chân này có nhiệm vụ mở IC cấp nguồn VBUS cho thiết bị

stm32 host hid config usb 4

Trong Platform Setting chọn PC0.

stm32 host hid config usb 3

Lập trình STM32 USB HID Host trên Keil C

Đầu tiên chúng ta include file usbh_hid.h và stdio.h (dùng hàm sprint)

stm32 host hid code 1

Tạo một buffer để in dữ liệu ra UART3

stm32 host hid code 3

Tìm hàm Call back, sau đó lập trình như sau:

  • Nếu thiết bị cắm vào là HID_Mouse
  • Đọc dữ liệu ra biến mouse_value
  • In dữ liệu lên mảng buffer
  • Truyền qua cổng UART

stm32 host hid code mouse

Trong while gọi hàm xử lý USB Host.STM32 HID Host giao tiep voi chuot va ban phim

stm32 host hid code main

Kết quả

ket qua 1

Lập trình STM32 USB HID Host giao tiếp với bàn phím máy tính

Tương tự với HID_KEYBOARD

  • Nhận dữ liệu và lưu vào biến keyboard_value
  • Chuyển đôi dữ liệu thành dạng char
  • in dữ liệu nhận được lên buffer
  • Truyền qua UART3

stm32 host hid code keyboard

Kết quả

ket qua 2

Kết

STM32 USB Hid Host với thư viện HAL khá dễ để sử dụng, do hãng đã cung cấp tất cả các hàm thực thi HOST, chúng ta chỉ cần sử dụng hàm call back mỗi khi có một thiết bị USB cắm vào, và lập trình dựa trên đó mà thôi

Hi vọng bài viết này có ích cho bạn, đừng quên gia nhập Hội Anh Em Nghiện Lập trình để giao lưu và học hỏi nhé!!!


Kết thúc
Ngoài các bài viết tin tức, bài báo hàng ngày của https://www.kythuatcodienlanh.com/, nguồn nội dung cũng bao gồm các bài viết từ các cộng tác viên chuyên gia đầu ngành về chuỗi kiến thức kỹ thuật điện, điện lạnh, điện tử, cơ khí,…,.. được chia sẽ chủ yếu từ nhiều khía cạnh liên quan chuỗi kiến thức này.
Bạn có thể dành thời gian để xem thêm các chuyên mục nội dung chính với các bài viết tư vấn, chia sẻ mới nhất, các tin tức gần đây từ chuyên gia và đối tác của Chúng tôi. Cuối cùng, với các kiến thức chia sẻ của bài viết, hy vọng góp phần nào kiến thức hỗ trợ cho độc giả tốt hơn trong hoạt động nghề nghiệp cá nhân!
* Ý kiến được trình bày trong bài viết này là của tác giả khách mời và không nhất thiết phải là SEMTEK. Nhân viên tác giả, cộng tác viên biên tập sẽ được liệt kê bên cuối bài viết.
Trân trọng,
Các chuyên mục nội dung liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button