stm32 usb_初始化硬故障

stm32 usb_初始化硬故障,usb,stm32,cdc,Usb,Stm32,Cdc,我正在尝试从STM32_USB-FS-Device_Lib_V4.0.0运行虚拟_COM_端口。我用的是IAR7.3。一切正常,但不运行usb。我开始使用调试器。在函数中 void USB_Init(void) { pInformation = &Device_Info; pInformation->ControlState = 2; pProperty = &Device_Property; pUser_Standard_Requests = &U

我正在尝试从STM32_USB-FS-Device_Lib_V4.0.0运行虚拟_COM_端口。我用的是IAR7.3。一切正常,但不运行usb。我开始使用调试器。在函数中

void USB_Init(void)
{
  pInformation = &Device_Info;
  pInformation->ControlState = 2;
  pProperty = &Device_Property;
  pUser_Standard_Requests = &User_Standard_Requests;
  /* Initialize devices one by one */
  pProperty->Init();
}

联机属性=&Device\u属性;调试器跳转到异常处理程序HardFault\u处理程序。有什么问题吗?IAR或某些设置有问题吗?

您正在访问memmory,但不应该。默认情况下,Hardfault_处理程序捕获所有异常,禁用可配置的故障异常。尝试打开MEMU故障:

SCB->CHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;

//Set the priority of the MemManage fault (using CMSIS):

NVIC_SetPriority(MemoryManagement_IRQn, *priority*);

//Default name for MemManage fault function is:
void MemManage_Handler(void);
在此之后,您的硬故障可能会变成内存故障。不多,但它能让你更好地了解你在处理什么

有关在iar上调试硬故障的信息,请参见此

我不能确定您在哪里设置了Device_属性变量,但请仔细检查是否可以将其内存地址指定给其他对象