USB移植(FLASH)
一、说明
准备好USB源文件,可参考正点原子USB读卡器实验例程,下载正点原子资料或光盘资料,,例程在 STSW-STM32121\STM32_USB-FS-Device_Lib_V4.0.0\Projects\Mass_Storage 下可以找到(STSW-STM32121 是官方的 USB 库压缩包,在光盘:8,STM32 参考资料\STM32 USB 学习资料文件夹下)。
所需文件如下图所示,添加文件进工程:
二、移植步骤
1、修改“platform_config.h”
我这个工程里面没有“platform_config.h”文件,但是在ST的源文件中有,这个文件只需要保留芯片ID,其余的都可以屏蔽
//#else /*STM32F1x*/
#define ID1 (0x1FFFF7E8)
#define ID2 (0x1FFFF7EC)
#define ID3 (0x1FFFF7F0)
2、修改“hw_config.c”
1)USB时钟配置
void Set_USBClock(void)
{
/* Select USBCLK source */
RCC_ConfigUsbClk(RCC_USBCLK_SRC_PLLCLK_DIV3); /*<<<<<<<<*/
/* Enable the USB clock */
RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_USB, ENABLE);
}
2)无需改动
void Enter_LowPowerMode(void)
3)无需改动
void Leave_LowPowerMode(void)
4)USB中断配置
void USB_Interrupts_Config(void)
{
NVIC_InitType NVIC_InitStructure;
/* 2 bit for pre-emption priority, 2 bits for subpriority */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /*<<<<<<<<*/
/* Enable the USB interrupt */
NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitSt