STM32F10x在线调试,在USB_init()里面一直死循环

dhiway   2010-8-23 16:08 楼主
用的ST-link的debugger,用的demo程序改写,当在线调试的时候,在usb_init()里面一直死循环,在不断的运行NOP_Process(); Bus Hound 里面显示no respond, no device。

但是把程序烧进去以后,把ST-link的debugger拔掉,一切能够正常运行,包括USB和其他运算功能,只是不能在线调试的话,有很多问题都发现不了,很不方便,望版主大大给予帮助,谢谢!

回复评论 (6)

                                 在线调试的时候,如果不设置断点,直接运行有问题吗?
点赞  2010-8-23 17:58
调USB是有点烦
但是ST官方的例子加官方的开发板再按照官方的描述连接跳线是可以调试的(J-Link)

即要在代码中能控制D+电平,且电路也能实际控制D+电平
先打开USB时钟,再上拉D+,中间间隔个几百个ms

ST Link调起来会更麻烦一些,可以试试用条件断点,先跑起来再用按键进入中断条件
点赞  2010-8-23 20:12
在线调试的时候,如果不设置断点,直接运行有问题吗?
如果不设置断点,程序烧好之后自动从Main()开始运行,但是还是会在usb_inti()这里卡起,运行不了后面的内容
点赞  2010-8-24 09:26
如果不设置断点,程序烧好之后自动从Main()开始运行,但是还是会在usb_inti()这里卡起,运行不了后面的内容
请在运行之前手动按板上的复位按钮进行一下复位,然后再按调试器上的复位按钮复位一次。
点赞  2010-8-24 10:29
请在运行之前手动按板上的复位按钮进行一下复位,然后再按调试器上的复位按钮复位一次。
香水大大,已经按照您的说法试过,还是不行,而且ST-link上面好像没有复位键。
点赞  2010-8-24 11:07
请在运行之前手动板上的复位按钮进行一下复位,然后再按调试器上的复位按钮复位一次。
板上的复位按钮,不是STLINK的。再按调试器上的复位按钮,是指调试软件上的复位按钮。
点赞  2010-8-24 11:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复