主题中讨论的其他器件:AFE4490、 DK-TM4C123G、 TM4C123、
工具/软件:Code Composer Studio
尊敬的 TI 专家:
我已经阅读了该论坛中的所有文章、这些文章为我将 Launchpad 配置为 USB 主机提供了大量帮助。
但我遇到了一个问题、找不到答案。 谢谢你。
在我的案例中、Launchpad 用作 USB 主机、AFE4490 SPO2 EVM 板用作 USB 从设备。 但无法建立枚举。
我在 launchpad 上的代码:
//启用 USB 外设
SysCtlPeripheralEnable (SYSCTL_Periph_USB0);
//Initialize the USB stack for host mode (针对主机模式初始化 USB 堆栈
USBStackModeSet (0、eUSBModeHost、0);
//启用 USB 引脚使用的 GPIO 外设
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
针对 USB 的//使能 GPIO 引脚:PB0和 PB1作为 VBUS 和 ID 引脚
GPIOPinTypeUSBAnalog (GPIO_PORTB_BASE、GPIO_PIN_0 | GPIO_PIN_1);
//将 D+/D-启用为 USB 引脚
ROM_GPIOPinTypeUSBDigital (GPIO_PORTC_BASE、GPIO_PIN_6 | GPIO_PIN_7);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
ROM_GPIOPinTypeUSBAnalog (GPIO_PORTD_BASE、GPIO_PIN_4 | GPIO_PIN_5);
//注册主机类驱动程序
USBHCDRegisterDrivers (0、g_ppsUSBHostClassDrivers、g_ui32NumHostClassDrivers);//将关闭 LED 端口 F 引脚2
//初始化电源配置。 将电源使能信号设置为高电平有效、不启用电源故障。
USBHCDPowerConfigInit (0、USBHCD_VBUS_AUTO_HIGH | USBHCD_VBUS_FILTER);
//在此处调用任何打开的例程,以使应用程序准备好使用新的大容量存储设备
tUSBHMSCInstance *g_psMSCInstance= USBHMSCDriveOpen (0、MSCCallBack);//打开海量存储类驱动程序的实例
USBHCDInit (0、g_pui8HCPool、HCD_MEMORY_SIZE);//初始化主机控制器
//应用程序的主循环
while (1)
{
开关(iMSDState)
{
//this state is entered when the pen drive is first detected.(首次检测到画笔驱动器时进入此状态。)
案例 MSD_INIT:
{
//关闭 LED
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0);
//初始化新连接的画笔驱动
器//等待驱动器准备就绪-等待该值变为0,然后主机控制器尝试从器件读取或写入。
while (USBHMSCDriveReady (g_psMSCInstance)
){
SysCtlDelay (100000 / 100); //为设备准备就绪提供延迟
}
//将其移至已连接状态
iMSDState= MSD_Connected;
break;
}
案例 MSD_Connected:
{
//如果检测到画笔驱动器,则点亮 LED。
GPIO_PORTF_DATA_R |= 0x08;
对于(ui32Loop = 0;ui32Loop < 200000;ui32Loop +);
GPIO_PORTF_DATA_R &=~Ω(0x08);
for (ui32Loop = 0;ui32Loop < 200000;ui32Loop ++);
break;
}
case MSD_NOT_Connected:
{
}
默认值:
{
break;
}
//交换机的末尾
USBHCDMain ();//主机控制器驱动程序的定期调用
}//end of while
非常感谢!
最好
Jackie