移植stm32固件库用于hid双向通信.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
移植stm32固件库用于hid双向通信

/a827415225/article/details/a827415225/article/details植STM32固件库用于HID双向通信USB的应用中HID类是比较常见的方式。通过修改STM32 USB固件库V4.0的JOYSTICK应用,我们实现一个双向USB通信。一、移植使用STM32源程序为点亮LED灯程序。首先将USB固件库中有用的函数复制到源函数中,建立LIB文件夹其中放入USB2.0协议函数建立CFG文件夹放入USB应用函数将两个文件夹都放到源工程目录下将文件添加进来,设置好,配置好KEIL软件设置。二、修改文件1、首先修改platform_config.h函数。 该文件是对于多种芯片对于USB库的支持。我们使用STM32F103ZET6芯片,所以只保留与之相关的ID项,与USB_DISCONNECT线(PG11)的配置。修改之后的头文件如下所示2、然后修改hw_config.c中Set_System函数 实际上STM32F103zet6不需要对USB端口进行单独的配置,删掉Set_System函数中没用的部分,只对USB_DISCONNECT线(PG11)进行初始化。修改后的函数如下图所示。3、接下来修改hw_config.c文件中USB_Cable_Config函数因为我使用的是比较老的神舟III开发板,当PG11为高电平时实现上拉,所以修改后的函数为4、修改USB_Interrupt_Config函数,配置USB_LP_CAN1_RX0_IRQn和USBWakeUp_IRQn中断修改后的函数如下图所示。5、接下来删掉hw_config.c文件中GPIO_AINConfig函数,没有什么用,只会报错6、删掉与按键相关的设置,因为我们并没有用到,主要是先清除JoyState和Joystick_Send函数中内容,不用管。7、最后我们处理USB挂起相关的问题。在USB固件库中提供挂起相关的处理函数,主要有2个函数需要修改。它们是Suspend函数和Enter_LowPowerMode函数。其中,在Suspend函数中注释掉PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);语句。修改Suspend函数,如下图所示OK接下来应该就没有什么需要修改的地方了(如果有的话请酌情修改)三、描述符修改使用USB HID类进行通信调试。所以要对USB的描述符要做部分修改(usb_desc.c)。下面我们贴程序说明(只对重要修改做说明)设备描述符修改idVendor和idProduct的值,为任意其他值,我里我用给的是0x0413和0x5724,修改的时候注意大小端配置描述符集合[cpp]?/a827415225/article/detailsiew plain?/a827415225/article/detailsopy?span?style=font-family:SimSun;font-size:10px;const?uint8_t?Joystick_ConfigDescriptor[JOYSTICK_SIZ_CONFIG_DESC]?=???{???0x09,?/*?bLength:?Configuration?Descriptor?size?*/??USB_CONFIGURATION_DESCRIPTOR_TYPE,?/*?bDescriptorType:?Configuration?*/??JOYSTICK_SIZ_CONFIG_DESC,???/*?wTotalLength:?Bytes?returned?*/??0x00,???0x01,/*bNumInterfaces:?1?interface*/??0x01,/*bConfigurationValue:?Configuration?value*/??0x00,/*iConfiguration:?Index?of?string?descriptor?describing??the?configuration*/??0xE0,/*bmAttributes:?Self?powered?*/??0x32,/*MaxPower?100?mA:?this?current?is?used?for?detecting?Vbus*/???/**************?Descriptor?of?Joystick?Mouse?interface?****************/??/*?09?*/??0x09,/*bLength:?Interface?Descriptor?size*/??USB_INTERFACE_DES

文档评论(0)

561190792 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档