STM32F103RB, USB 调不通,请教。

2019-03-23 20:31发布

我买的 STM32F103RB 开发板,硬件好使,干别的都可以的。
主时钟 8M,USB D- 用跳线通过1.5k 电阻连 3.3V。
下载 STM 的 U转串 DEMO。

主程序部分:
  Set_System();
  Set_USBClock();
  USB_Interrupts_Config();
  USB_Init();
到 USB_Interrupts_Config() 执行中,就进 HardFault_Hander 了。

跟踪进去,是在这:
  NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
这个 USB 中断一设定就死了。

在 IAR 里面修改了 LCF:
ROM 和 RAM 的大小和位置都是对的。
STACK SIZE 0x800, HEAP SIZE 0x400

前辈帮忙看看,哪块没想到的? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
sujingmeng
2019-03-24 16:30
en,
已经找到问题了。
我用的是网上一个网友准备的代码,UART 部分比较干净,但是包含的 startup.s 有问题,没包含合适的终端入口。其结果是:link 的时候,中断服务程序由于没有引用源,就被干掉了。
我今天用 STM 的 0402 给出的代码,删了一些和开发板有关的东西,已经能够完成 USB 设备发现了。
目前的情况是 USB -> 232 正常,反过来不正常。
不过已经可以继续调试了。
谢谢大家!!

一周热门 更多>