Keil移植stm32的usb及usb massStorage步骤
1. 将STM32的usb的库文件拷贝到Src\Libraries下 并在工程中添加STM32_USB-FS-Device_Driver全部源文件; 霹雳鞭在工程属性c++选项 include Path 添加STM32_USB-FS-Device_Driver\inc路径抱毯
2. 将本目录的Mass_Storage文件夹拷贝到Src\Usr文件下
并在工程中添加Mass_Storage\src全部源文件;
在工程属性c++选项 include Path 添加Mass_Storage\inc路径
3. 将下面三个头文件和两个函数加到stm32f10x_it.c中 #include "usb_lib.h"
pigi#include "usb_istr.h"
#include "usb_pwr.h"
void USB_HP_CAN1_TX_IRQHandler(void)
{
CTR_HP();
}
void USB_LP_CAN1_RX0_IRQHandler(void)
{
USB_Istr();
}
6. 对Mass_Storage\src下的usb_hw_config.c文件下 其中2个函数
void USB_Disconnect_Config(void) [注意:此处的IO口设置为推挽输出]
void USB_Cable_Config (FunctionalState NewState)
重新按照自己硬件改写
Mass_Storage\inc下的usb_hw_config.件三个定义
#define USB_DISCONNECT GPIOA
#define USB_DISCONNECT_PIN GPIO_Pin_8
#define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOA
关于usb的使能IO 按照自己硬件改写
7. 在\Src\Usr\Mass_Storage\mass_mal.c文件中
家用食品搅拌机B:填写四个函数,均为存储器的相关驱动函数
在unsigned short int MAL_Init(unsigned char lun)中添加存储器初始化函数
在unsigned short int MAL_Write(unsigned char lun, unsigned int Memory_Offset, unsigned int *Writebuff, unsigned short int Transfer_Length) 中添加存储器写缓存函数
在unsigned short int MAL_Read(unsigned char lun, unsigned int Memory_Offset, unsigned int *Readbuff, unsigned short int Transfer_Length) 中添加存储器读缓存函数
在unsigned short int MAL_GetStatus (unsigned char lun)中添加存储器容量的函数
8. 使用方法:
包含头文件
#include "usb_lib.h"
#include "usb_hw_config.h"
#include "usb_pwr.h"
调用函数:
MassStorageInit(); //IO相关初始化
不用充电的手电筒Set_USBClock(); //USB时钟初始化
USB_Interrupts_Config(); //USB通信中断配置中轴旋转门
USB_Init(); //USB初始化
9.
吴青松
2012-3-15