我设计了一种在PCB板上使用STM32L452RETx单片机的电路。这基本上是一个电流传感器。我正在使用JTAG-20连接器进行调试。我使用的是Atollic TrueStudio集成开发环境。
问题是,当我在TrueStudio中通过选择调试配置中的JTAG选项来调试程序时,它会给出错误,说无法初始化ST链接,并且找不到目标,但当我选择SWD时,没有任何错误,它编程成功。在STM32CubeMx中,当我在硬件中使用JTAG 20时,我将debug设置为JTAG 5引脚配置。(串行外设->系统->调试-> Jtag 5针)。程序正在调试,没有错误,但串行终端没有输出。串行终端无握手错误。
有没有人知道这是正确的调试方式(在TrueStudion中使用SWD,在STM32CubeMx中使用JTAG ),或者我正在犯一个错误。
致以敬意,
发布于 2020-04-16 01:40:07
矛盾之处并不像看起来那么大:正如您可以在第74/75页的Datasheet for STM32L452xx, DS11912 Rev.5中验证的那样,用于JTAG和SWD的GPIO的备用功能是相同的(总是AF0,"SYS_AF")。因此,在您将STM32CubeMX配置为JTAG之后,SWD连接才能正常工作(如果您已将多维数据集项目配置为SWD,则JTAG不会工作,因为JTDI引脚(PA15)不会连接到AF0。)
这解决了社署意外运作的问题。
为什么JTAG不能工作的问题仍然存在。
您提到您使用的是JTAG-20连接器,但并没有确切说明您使用的是哪个ST-Link版本。例如,如果您正在使用嵌入到核心板(或discovery,或其他供应商的类似产品)中的ST-Link部件,则ST-Link引脚仅限于SWD和SWO所需的线路(合称: SWV)。这不是由于TrueStudio的限制,它原则上支持JTAG,而是因为5条线路中的一条可能没有连接。
请检查您使用的确切ST-Link版本(最容易检查的是ST-Link Utility程序告诉您的),重新检查从目标µC到调试适配器的原理图和布线。如果你没有找到一个明显的原因(并以这种方式解决你的问题),你的问题可能是一个电子问题。然后这里就离题了(在进一步缩小范围之后),您应该在Electrical Engineering Stack Exchange中描述剩余的问题。如果您有示波器,则可能值得检查信号,特别是那些只在JTAG上而不在SWD上的引脚(JTDI、JTDO、NJTRST)。
https://stackoverflow.com/questions/57850842
复制相似问题