第一个寄存器:OTG_FS 控制和状态寄存器 (OTG_FS_GOTGCTL)就不一样,下图是f407的寄存器,缺少位21、20、7到2
f412的寄存器,显然多了多了位21和位20,位21是用于指示当前USB是主设备还是从设备状态,位20是用于选择USB1.3还是USB2.0,位7到2都有
再看看F7的寄存器,没有位21但也有位20、7到2
最后看看原子哥的f7开发手册,显然在设置位7、6,基本可以确认问题出在这!
那怎么改呢?
除了增加例程代码还有注意到#if defined (STM32F446xx) || defined (STM32F469_479xx) || defined (STM32F767xx)
显然是增加对f767的支持,而我的启动文件是startup_stm32f40_41xxx.s,那么只要在后面增加|| defined (STM32F40_41xxx)
即所有的#if defined (STM32F446xx) || defined (STM32F469_479xx) || defined (STM32F767xx)增加|| defined (STM32F40_41xxx)即可:
#if defined (STM32F446xx) || defined (STM32F469_479xx) || defined (STM32F767xx)||defined (STM32F40_41xxx)