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
Mục lục bài viết
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
Chúng ta sẽ sử dụng UART3 để xem dữ liệu mà thiết bị gửi về.
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.
Tab USB_HOST chọn Class HID
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ị
Trong Platform Setting chọn PC0.
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)
Tạo một buffer để in dữ liệu ra UART3
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
Trong while gọi hàm xử lý USB Host.
Kết quả
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
Kết quả
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