Trong bài này chúng ta sẽ cùng tìm hiểu STM32 USB MSC Host để biến STM32 thành 1 chiếc máy tính có thể đọc dữ liệu từ USB hay các thiết bị MSC khác.
Bài 5 phần STM32F407 trong Serie Học STM32 từ A tới Z
USB MSC Host là gì?
USB MSC host chính là biến STM32 thành 1 chiếc máy tính để có thể giao tiếp với các thiết bị MSC thông qua cổng USB.
USB MSC host có rất nhiều ưu thế như:
- Có thể sử dụng các thiết bị MSC như 1 bộ nhớ bên ngoài, giảm nhược điểm bộ nhớ ít của Vi điều khiển
- Có thể trực tiếp đọc, ghi dữ liệu từ các thiết bị MSC khác
- Nâng cao khả năng tương thích với các thiết bị trên thị trường hiện nay
- Có thể nạp chương trình (bootloader) trực tiếp bằng các thiết bị USB MSC
USB MSC Host cũng vẫn làm việc theo các quy trình: khởi tạo, đọc/ghi, kết thúc
Lập trình STM32 USB MSC Host đọc dữ liệu từ USB
Chuẩn bị
Thiết lập trên CubeMx
Để thiết bị Host nhận ra việc có thiết bị cắm vào cổng USB
Lập trình STM32 USB MSC ghi dữ liệu
Để lập trình USB Host MSC chúng ta tìm trong file usb_host.c, USBH_userProcess.
Chúng ta viết code vào Case: HOST_USER_CLASS_ACTIVE nghĩa là khi USB kết nối thành công và class MSC được khởi động.
Để ghi dữ liệu, chúng ta sử dụng các hàm được định nghĩa ở file đã include.
- Tạo folder
- Tạo file và ghi file
Chúng ta có thể kết nối USB_UART vào UART 2 để debug và xem dữ liệu được in ra.
Sau đó cắm USB vào mạch.
Kết quả, sau khi cắm USB serial sẽ in ra các text.
Sau đó tháo USB và cắm vào máy tính. File và folder được tạo trên USB
Lập trình STM32 USB MSC đọc và sửa dữ liệu
Để có thể đọc dữ liệu, sử dụng lệnh Readfile và truyền vào đường dẫn của file.
Để có thể sửa file, sửa dụng lệnh Update_File và truyền vào đường dẫn.
Kết
STM32 USB MSC host rất tiện dụng khi các bạn lập trình các ứng dụng sử dụng USB để đọc/ghi dữ liệu. Ví dụ như trên các máy CNC đọc các lệnh lưu vào USB để thực thi câu lệnh.
Vậy là các bạn đã biết cách sử dụng STM32 USB MSC Host, hãy chuyển tới bài tiếp theo. Đừ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é!!!
cảm ơn bài viết của anh