USBH_USR_NO_RESP = 0, /*no response from user */ USBH_USR_RESP_OK = 1, }
USBH_USR_Status; 4ÑÝʾ³ÌÐò
4.1´óÅúÁ¿´æ´¢ÀàµÄÑÝʾ 4.1.1Èí¼þ³õʼ»¯
ÒÔÏ´úÂë´Ómain.cÎļþÌáÈ¡´úÂë¡£ÎļþÏÔʾµ÷ÓÃusbh_processfor֮ǰ¹ÜÀíÄÚºË״̬»ú±ØÒªµÄ³õʼ»¯¡£
usb_init±»¶¨ÒåÀàÇý¶¯³ÌÐòµÄ²ÎÊýµ÷Óã¬ÕâÊÇMSCÀàÇý¶¯£¬²¢Ê¹ÓÃÓû§»Øµ÷º¯Êý int main(void) {
/* Setup STM32 Hardware Configuration */ BSP_Init();
/* Init Host Library */
USBH_Init(&USB_OTG_FS_dev, &MSC_cb , &USR_Callbacks); while (1) {
/* Host Task handler */ USBH_Process(); } }
4.1.2´óÅúÁ¿´æ´¢É豸ö¾Ù
µ±¸½¼ÓÒ»¸öÈ«/µÍËÙÉ豸µÄstm3210c_eval°å£¬LCDÏÔʾÏÂÃæµÄÎÄ×Ö£¨ÀýÈ磬µ±¹ÒÔØKingston DataTraveler G2 uÅÌ£©£º ͼ6¡£MSÉ豸ö¾Ù
4.1.3·ÃÎÊ´óÅúÁ¿´æ´¢É豸µÄÄÚÈÝ
ö¾Ù½áÊøºó£¬°´Ï°´Å¥B3ÏÔʾÆÁĻϷ½£¬ËüÌṩÒÔÏÂÐÅÏ¢£º ¡ö¿ìÉÁËæÉíµúÈÝÁ¿£¨ÒÔÕ××Ö½Ú£© ¡ö¸ùÎļþ¼ÐÖеÄÎļþ
ͼ7¡£MSÉ豸ÄÚÈݵķÃÎÊ
Çë×¢Ò⣬ÔÚä¯ÀÀ´óÅúÁ¿´æ´¢É豸ÄÚÈݺó£¬Ò»¸ö¼òµ¥µÄÎı¾Îļþ¡°hostdemo.txt¡±Ð´ÈëÉÁ´æËæÉíµú£¨¼ÙÉèËüûÓÐд±£»¤£©¡£
ΪÁ˲âÊÔÎļþµÄ¶Á·ÃÎÊ£¬Óû§¿ÉÒÔ´ÓÒº¾§ÏÔʾÆÁÉÏÏÔʾͼÏñ»ÃµÆÆ¬£¬¼ÙÉèһЩBMPͼÏñÔÚÉÁ¹âµÄËæÉíµúµÄ¸ùÎļþ¼ÐÊÇ¿ÉÓõġ£
×¢£º1 BMPͼÏñÓëLCDÆÁÄ»´óСÔÚÏîÄ¿Îļþ¼ÐÌṩ¡£ 2Èç¹ûÉ豸ÊÇд±£»¤µÄ£¬ÔòÔÚÒº¾§ÆÁÉÏ»áÏÔʾһÌõ¾¯¸æÏûÏ¢¡£
3´øÓжà¸öÂß¼µ¥ÔªµÄ´óÅúÁ¿´æ´¢É豸²»Ö§³Ö£¨´íÎóÐÅÏ¢»áÔÚÒº¾§ÆÁÉÏÏÔʾ£©¡£
4Èç¹ûûÓÐBMPͼÏñÔÚuÅ̵ĸùÎļþ¼Ð¿ÉÓã¬Ò»¸ö¾¯¸æÐÅÏ¢»áÏÔʾÔÚÒº¾§ÆÁÄ»£¬2Ãëºó£¬Ö÷Ä£Ê½ÖØÐ³õʼ»¯£¨ÖØÐÂÆô¶¯uÅÌö¾Ù£©¡£ 4.1.4uÅÌÊÔÑé
ÓÉÓÚǶÈëʽUSBÖ÷ģʽÊÇÓÐÏ޵ģ¬ÕâЩ»¥²Ù×÷ÐÔ²âÊÔ£º 1¡£Ã¶¾Ù£¬
2¡£ÓëÉ豸Á¬½ÓÀäÆô¶¯£¬ 3¡£ÈȰγö/Á¬½Ó 4¡£ä¯ÀÀ¸ùº¬Á¿£¬
5¡£´´½¨¡°hostdemo.txt¡±Îļþ£¬
6¡£´ÓÉ豸¶ÁÈ¡Êý¾Ýµ½Òº¾§ÆÁ£ºÍ¼Ïñ»ÃµÆÆ¬£¬ 7¡£·¢ËÍÏûÏ¢µ½TFT-LCD£¨Æô¶¯Ê§°Ü¾ÍÌáʾ£©
Òѳɹ¦µØÓ¦ÓÃÓÚϱíÑ¡Ôñ²»Í¬µÄÉÁ¹âpendrivesʹÓÃSTM32F1057 / USBÖ÷ģʽ¿âÌṩ´óÅúÁ¿´æ´¢Ê¾·¶µÄÀý×Ó¡£ 4.2HIDÊó±êºÍ¼üÅÌÑÝʾ 4.2.1³õʼ»¯
Óë´óÈÝÁ¿´æ´¢É豸һÑù£¨¼ûµÚ4.1.1£©£¬³ýÁËHIDÀàÇý¶¯³ÌÐòÔÚusbh_initfunctionÑ¡Ôñ£º /* Init Host Library */
USBH_Init(&USB_OTG_FS_dev, &HID_cb , &USR_Callbacks); 4.2.2Êó±ê»ò¼üÅÌÉ豸ö¾Ù
ÀàËÆµÄ´óÈÝÁ¿´æ´¢É豸£¨¼û4.1.2½Ú£© Êó±êÑÝʾ
Êó±êÉ豸ö¾Ùºó£¬°´Ï°´Å¥£¬B3ÏÔʾÏÂÃæµÄÆÁÄ»ÉÏ£¬Õâ
ÏÔʾÊó±êµÄ3¸ö°´Å¥£¬Ö¸Õ루ÂÌÊ®×Ö£©¡£ ͼ8¡£Êó±êÑÝʾ
Keyboard demo
After keyboard enumeration, pressing button B3 displays an LCD screen where the user can
type some text:
Figure 9. Keyboard demo
ÑÝʾµÄ½ÅÓ¡ 5ÒÑÖªµÄÏÞÖÆ
µÄUSBÖ÷ģʽÐÒéÕ»STM32F105 / 7¾ßÓÐÒÔϳƵ±Ç°µÄ°æ±¾ ¾ÖÏÞÐÔ£º
1¡£ËüÖ»Ö§³ÖÁ½¸öUSB±ê×¼¼¶µÄÓ¦Ó㬼´£º
A£©´óÅúÁ¿´æ´¢ÀࣨMSC£©·ÃÎÊUSBÉÁ´æpendrives£¬ B£©ÈË»ú½Ó¿ÚÉ豸£¨HID£©µÄ¼üÅ̺ÍÊó±êÉ豸Àà¡£ 2¡£ËüÖ»Ö§³ÖÒ»¸ö½Ó¿ÚºÍÒ»¸öÅäÖõÄÑ¡Ôñ£¨Ä¬ÈÏÉèÖã©¡£ 3¡£Ëü²»Ö§³Ö¶à¸öÂß¼µ¥ÔªµÄ´óÈÝÁ¿´æ´¢É豸¡£ 4¡£Ëü¾ßÓÐEFSL FATÎļþϵͳ֧³Ö£º
A£©Ò³µÄ´óСÊǹ̶¨µÄ512¸ö×Ö½Ú¡£Flash pendrives¸ßÁ£¶È²»Ö§³Ö¡£
B£©²»Ö§³Ö³¤ÎļþÃûºÍUnicode¡£
5¡£ºÜ¶ÌµÄʱ¼äÖ®¼äµÄÑÓ³Ù×°ÖÃÍÑÀë/Á¬½Ó¿ÉÄܻᵼÖÂÒì³£²Ù×÷¡£ 6¡£¼æÈÝÐÔÎÊÌâÒѾÓöµ½µÄһЩÉ豸£¨TA BL E 1 5δÁгö£©ÔÚö¾ÙÏà¡£
7¡£Á¬½ÓºÍ¶Ï¿ªÒ»¸ö²»Ö§³ÖµÄÀàÉ豸Ȼºó½«ºóÖ§³ÖÀàÉ豸£¬Ã¶¾ÙÊÇÕýÈ·µÄ£¬µ«É豸²»ÄÜ·ÃÎÊ¡£Ò»¸öÉ豸µÄ¸´Î»ÊDZØÒªµÄ¡£