【NUCLEO-L496ZG评测】+USB OTG测试
6、USB OTG测试所谓的USB OTG就是这个USB口可以作为USBHost来使用,也可以作为USB Device来使用,但是同一时间只能配置为一种模式。手机上面的USB口即为这种USB OTG。下面来测试一下这个USB OTG的功能。首先新建一个cubemx工程,按之前的方法配置好CPU,串口,时钟等,然后按照如下方法配置USB1、USB-OTG-FS打开,选择Host-only,VBUS需要选上。这个VBUS是用于给连接在USB接口上的设备供电的,如果你的USB设备能够自行供电也可以不选。 2、在中间件那里选上USB-HOST选项,这里使用USB storage 3、在中间件那里选上FATFS选项,这里使用USB Disk 4、生成代码,堆栈尽可能选大一些,其余配置按照前面介绍的就行 用Keil打开工程,可以看到工程的结构,看到这个工程比较复杂,包含很多个文件,但是实际上需要修改的就只有main.c这个文件,增加功能性的函数。其中所需要的函数都包含于名为ff.h的文件中,有关ff.h文件的用法请参考https://wenku.baidu.com/view/736efb40b307e87101f69651.html;这里笔者演示一个从U盘的一个txt文件中读取一行字符的实验。在main.c的main函数的while(1)中增加如下的语句:if(APPLICATION_READY == Appli_state){FATFS fatfs;
printf("***************************************************\r\n");
if(FR_OK == f_mount(&fatfs,USBH_Path,1)){
printf("successfully mount USB Disk \r\n");
FIL file;
if(FR_OK == f_open(&file,"demo.txt",FA_CREATE_ALWAYS|FA_WRITE|FA_READ)){
printf("demo.txt");
printf(" successfully open \r\n");
char writeContent[] = "This is STM32L496";
char readContent = {0x00};
uint32_t realLen = 0;
if(FR_OK == f_write(&file,writeContent,strlen(writeContent),&realLen)){
printf("The content has been written \r\n");
f_lseek(&file,0);
if(FR_OK == f_read(&file,readContent,realLen,&realLen)){
printf("The content has been read successfully \r\n");
printf(readContent,realLen);
printf("\r\n");
}else{
printf("read content error.\r\n");
}
}else{
printf("write content error.\r\n");
}
printf(" USB Host test finished \r\n");
f_close(&file);
}else{
printf("Unsuccessfully creat the file \r\n");
}
}else{
printf("Unsuccessfully mount USB Disk \r\n");
}
printf("***************************************************\r\n");
MX_DriverVbusFS(1);
while(1);
}
然后编译,下载到开发板上面实验最后来演示一下,首先准备一个U盘,现在里面是没有这个demo.txt的文件的用一个OTG转接头,将U盘与开发板的USB接口连接,此时,开发板USB接口旁边的绿色灯会亮。 串口会打印出如下图所示的信息。 将U盘再次连接到PC上面,这时可以看到,U盘中多出了这个名为demo.c的文件。 Demo.c里面的内容恰好就是打印的那句"This is STM32L496"。 至此,就完成了这个开发板USB部分的测试。 STM32L496的USB部分被集成在了芯片内部,可以使用芯片内部的时钟,因此不需要外置晶振,这样可以有效减少板子上的元件数目。
======================================================================================
最后,感谢@moyanming2013 的测试思路
赞一个~~
这个是连载吗? 乖乖妮 发表于 2017-5-4 17:29
赞一个~~
这个是连载吗?
是的,前面还有硬件解析,开发环境那些内容
页:
[1]