查看: 892|回复: 0
打印 上一主题 下一主题

STM32F407VG实现USB自定义HID加VC上位机

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-20 08:23:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
经过几天努力总算把STM32F407VG的USB自定义HID调出来了。个人怀疑ST的官方库STM32_USB-Host-Device_Lib_V2.1.0有问题,问题应该在CMSIS中。之前想的是通过修改STM32_USB-Host-Device_Lib_V2.1.0库中的HID例程实现自定义HID。但做相应修改后程序下载到Discovery板子上,插上USB,电脑提示是无法识别的USB设备。而把STM32F4-Discovery_FW_V1.1.0中的Demonstration例程下载进去就能实现鼠标功能。然后修改Demonstration例程只保留USB的初始化,电脑也可识别。后面用STM32F4-Discovery_FW_V1.1.0中的STM32_USB_OTG_Driver库程序和STM32_USB_Device_Library库程序,加入自己建的工程,编译下载,电脑能识别。然后用STM32_USB-Host-Device_Lib_V2.1.0中的USB库文件替换相应文件,编译下载,电脑能识别。替换我工程里的STM32F4xx_StdPeriph_Driver文件夹和CMSIS文件夹,编译下载,电脑就不能识别了。再把CMSIS文件夹替换回来,编译下载,电脑又能识别了。所以怀疑STM32_USB-Host-Device_Lib_V2.1.0的CMSIS文件夹中程序有问题。
电脑能识别了,后面的程序修改成自定义HID就简单了,具体在程序的readme中。VC上位机还是用的之前那个http://www.amobbs.com/thread-5493024-1-1.html
找到問題的根本原因了!!!!

請注意!!!!!!!!! STM32F4 discovery 的 HSE 是 25Mhz!!!!

我的是 8 Mhz

所以 CMSIS 的檔案 (system_stm32f4xx.c )要改

1.
#define HSE_VALUE  80000000  // 原本是 25000000

2.
/************************* PLL Parameters *************************************/
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      25 <-----這個要改為"8"
#define PLL_N      336

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2

/* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ */
#define PLL_Q      7

/******************************************************************************/
转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表