Open bằng Keil C. Đầu tiên chúng ta sẽ thêm thư viện Hid vào main để dễ dàng thao tác bằng lệnh #include “usbd_hid.h”
Open bằng Keil C. Đầu tiên chúng ta sẽ thêm thư viện Hid vào main để dễ dàng thao tác bằng lệnh #include “usbd_hid.h”
Trong bài này mình sẽ sử dụng Joystick đọc giá trị ADC biểu thị trục X, Y. Và nút nhấn trên Joystick biểu thị cho Left_Button trên chuột máy tính.
Mở CubeMx, chọn chip STM32f103C8T6, trong System Core
Trong Tab Analog ta sẽ cấu hình ADC1 để đọc giá trị Joystick
Thiết lập Clock cho USB là 48Mhz (Bắt buộc)
Đặt tên bài học rồi Gen code như tất cả các bài trước
Trước tiên nếu bạn chưa bao giờ điều khiển một thiết bị USB thì hãy quay lại Bài 16 để đọc bài viết và tài liệu USB in a Nutshell để có cái nhìn tổng quát nhất.
Thiết bị HID và Host (máy chủ) giao tiếp với nhau qua kiểu Control Transfer ( hay Endpoint 0). Sử dụng Ngắt tại chiều IN và tùy chọn ở chiều Out. Đặc tả của lớp HID cho phép chúng có thể truyền dữ liệu ở cả tốc dộ low speed , full speed và high speed.
Sakura Montessori Thụy Khuê là mô hình trường mầm non tiêu chuẩn trong chung cư cao cấp. Nằm tại tầng 2, Sun Grand City Residence 69B Thụy Khuê, Sakura Montessori Thụy Khuê gây ấn tượng với khu vui chơi bay bổng, được thiết kế theo chủ đề “Khu vườn trên mây”, các phòng học Montessori tiêu chuẩn, khoa học và đẹp mắt, hệ thống tiện ích đặc biệt dành riêng cho trẻ, đáp ứng nhu cầu học tập, vui chơi của mỗi bạn nhỏ.
Phần mềm gửi và nhận dữ liệu HID Terminal:
Tools giải mã report descriptor.
http://eleccelerator.com/usbdescreqparser/
Trước khi máy chủ có thể nói chuyện với thiết bị, nó cần biết cách sử dụng hoặc ứng dụng của thiết bị này là gì? Dữ liệu của nó được tổ chức như thế nào? và Dữ liệu thực sự đo lường điều gì?
Lấy ví dụ: Nếu thiết bị của bạn là một con chuột máy tính, các nút bấm và tọa độ sẽ điều khiển Pointer trên màn hình. Sự kiện click hoặc righ click sẽ làm gì, scroll sẽ làm gì. Để tất cả các sự kiện đó được sảy ra, trình điều khiển lớp HID phải biết rõ:
Tất cả các thông tin này sẽ được mô tả trong phần Report Descriptor. Khi trình điều khiển phân tích cú pháp của Report Descriptor nó sẽ hiểu được khi thiết bị chuột máy tính truyền dữ liệu lên, dữ liệu nào sẽ thuộc ứng dụng nào của máy tính. (Tương tự bạn phân luồng dữ liệu UART vậy).
Khi một thiết bị HID được kết nối, Host sẽ tạo ra 1 Request đó là GET_DESCRIPTOR, sau khi hoàn tất quá trình. Chuột máy tính và máy tính sẽ giao tiếp với nhau mà ko cần thêm driver gì cả.
Bộ Report Descriptor được mô tả bởi chuỗi các mục, các mục này mô tả dữ liệu sẽ truyền đi khi thiết bị USB HID device truyền hoặc nhận. Mỗi mục bắt đầu bằng tiền tố là 1 Byte quy định vai trò của mục và độ dài dữ liệu của nó.
Mỗi mục chia làm 3 loại thẻ chính:
Mỗi loại thẻ bao gồm một số loại chính như:
Mỗi thẻ mục sẽ được phân loại tương ứng với 1 mã từ 0 – 255 ( 1 Byte).
Cấu trúc của Report Descriptor như sau:
Lấy ví dụ về Report Descriptor cho chuột máy tính như sau:
Phần khoanh đỏ cấu hình 3 nút nhấn của chuột, phần khoanh xanh cấu hình tọa độ của chuột.
Phần Usage Page và Usage xác định kiểu thiết bị đó là Mouse và thuộc máy tính để bàn (Generic Desktop).
Các bạn có thể tham khảo link này để phân tích 1 RD: https://www.crifan.com/files/doc/docbook/usb_hid/release/webhelp/hid_report_example_analysis.html
Tầng 2, Sun Grand City Residence 69B Thụy Khuê, Quận Tây Hồ, Hà Nội
Các thiết bị USB HID rất gần gũi với chúng ta ví dụ như chuột máy tính, bàn phím, soud card… Vi điều khiển STM32 hỗ trợ giao thức HID Device giúp chúng ta có thể lập trình tạo ra các sản phẩm giống như những thiết bị đó. Bài hôm nay mình sẽ nói đến USB HID Custom, làm thế nào để nó có thể truyền nhận dữ liệu với máy tính, hãy cùng tìm hiểu nhé!
Bài 17 trong Serie Học lập trình STM32 từ A tới Z
HID (viết tắt của Human Interface Device) là một tiêu chuẩn cho các thiết bị máy tính được vận hành bởi con người. Tiêu chuẩn này cho phép dễ dàng sử dụng các thiết bị này mà không cần bất kỳ phần mềm hoặc trình điều khiển bổ sung nào.
HID là một tiêu chuẩn được tạo ra nhằm đơn giản hóa quá trình cài đặt các thiết bị đầu vào thông qua từng giao thức cụ thể cho từng thiết bị như chuột, bàn phím,… Một thiết bị tuân thủ HID bao gồm “gói dữ liệu” có thể chứa tất cả các hành động của thiết bị.
Ví dụ: Bàn phím có thể có một phím để điều chỉnh âm lượng. Khi nhấn phím đó, “bộ mô tả HID” sẽ cho máy tính biết mục đích của hành động đó được lưu trữ trong các gói tin ở đâu và lệnh đó sẽ được thực thi.
Mới được khánh thành cuối năm 2019, Asean Nhà khách Bộ Quốc Phòng T66 là cơ sở mới nhất nằm trong hệ thống Tiệc cưới và Sự Kiện Asean Hà Nội.
Địa điểm tổ chức gồm 2 phòng tiệc với sức chứa từ 300 đến 800 khách. Phòng tiệc rộng lớn ở sảnh 1 của nhà khách đảm bảo yếu tố sang trọng, lịch sự với cảnh quan xung quanh, hai mặt đường thoáng rộng nằm tại ngã tư Thuỵ Khuê, Văn Cao.
Phù hợp tổ chức sự kiện công ty, hội nghị, hội thảo trang trọng, hoặc tiệc cưới trong khu vực Ba Đình, Tây Hồ. Sảnh vào sang trọng. Chỗ để xe rộng rãi. Dịch vụ trọn gói kết hợp với các tiện ích của khách sạn.
Thực đơn tham khảo cho mâm 10 khách. Để được tư vấn chi tiết và đặt món theo yêu cầu, mời quý khách liên hệ Asean theo thông tin bên dưới.
Canh nấm thiên nhiên thả hạt sen
Tôm sú rang muối (0,05kg/con /10c/đ)
DỊCH VỤ TRỌN GÓI ĐI KÈM TIỆC CƯỚI
Email: [email protected]
Để sử dụng kit stm32f103c8t6 Bluepill thành chuột máy tính chúng ta cần phân tích dữ liệu truyền lên máy tính của 1 con chuột.
Cấu trúc dữ liệu truyền lên bao gồm:
Chúng ta sẽ sử dụng Joystick đọc ADC 2 kênh X Y và nút nhấn trên nó sẽ tương ứng với phím Left Click.
Mỗi khi có sử kiện nhấn nút hoặc di chuyển, chúng ta sẽ gửi dữ liệu theo gói thông qua USB HID.