stm32 USB-HID移植
[复制链接]
stm32芯片的设计确实很恶心简单举两个例子:
1. STM32F103芯片的USB和CAN中断和RAM共用,导致无法同时使用USB和CAN。
2.STM32F105芯片的USB的从机需要接VBUS脚,而103的不用接都可以;103的软连接的通过IO端口控制的,而105的却是内部上拉电阻。
这些问题导致了从STM32的103系列转到105时是不兼容的。USB部分代码还必须重新移植,这样的设计真的很恶心。
STM32不管是那个系列都为我们提供了例程,这一点来说大大减小了使用STM32的难道,下面我们简单的说说STM32的USB移植是需要注意的几点。
1. 首先应该注意更改外部晶振值,让实际与软件中的值相同:
#define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */ (stm32f10x.h文件)
2. 设置内核时钟,我们一般都设置为72MHz:
#define SYSCLK_FREQ_72MHz 72000000 (system_stm32f10x.c文件)
3. 设置USB时钟,这个固定在48MHz(usb_desc.c文件):
/* Configure PLLs ------------------------------------------------------*/
/* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
/* PREDIV1 configuration: PREDIV1CLK