在线时间61 小时
UID396644
ST金币0
蝴蝶豆0
注册时间2012-7-6
金牌会员
- 最后登录
- 2020-2-12
|
a0a.1 32b0c
趁着五一假期,单身狗拿了一上午时间来搞搞NUCLEO-L496ZG的OTG功能,
跟着论坛几位网友的步伐@何昌昕 ,@Paderboy ,在此表示感谢
在做测试的时候自己遇到一些问题,现在请教各位是否有相关的经验,可以给我解惑
使用的开发环境为:
stm32cubmx v4.20
IAR for ARM 8.10.1
首先是使用stm32cubmx 生成初始化代码
先是usb-otg-fs选择usb host only
然后USB-HOST选择mass storage host class
再者FATSFS选择USB-Disk
可以打开LPUART1作为调试信息输出,然后在代码中自己加入输出重定向的fputc函数
具体过程可以看其他帖子,在此不做更多叙述
使用stm32cubmx v4.20定制生成的工程,底层的IO管脚与实际有些差别,要自己修改一下哈
然后是一个比较重要的函数,在usbh_conf.c文件的USBH_LL_DriverVBUS函数
之前没有发现这个函数,导致USB_VBUS一直没有上电
其中,
PG6为输出模式,是控制USB上下电的管脚
PA9为输入模式,应该是检测USB VBUS状态的
芯片STMPS2151STR是一个开关,按理应该是PG6为高时,输出OUT为高,是的VBUS为高
也即VBUS为高时,LD8点亮,
由此,我认为自己的程序有地方没有弄对,使得VBUS一直不正常……
加上红色的语句后,开始这两句是反的,板子上的LD8始终不能点亮,后来看了电路图,试着把红色的两句代码交换一下,测试就可以了,可以利用程序在U盘里面创建文件等动作了~
附上工程代码
fs_otg.zip
(6.22 MB, 下载次数: 35)
|
|