嗨对话框
我使用的是基于DA14681的电路板,我想使用6个热敏电阻,为此我必须使用一个与SWD引脚共享的ADC引脚(SWD CLK和SWDIO)。
我混淆了这个pin,但它没有工作,然后从这个查询我意识到调试器需要被禁用,这个pin才能工作(https://support.dialog semiconductor.com/forums/post/dialog-smartbond-bl。。。)
但仍然没有进展。
1通常我不知道我需要在代码中的什么地方禁用调试器。我在外设初始化之前做了这个,我想它禁用了调试器,现在cz JTAG没有对主板进行编程。所以我不得不通过索塔烧掉密码。。
如果我的JTAG被禁用了这个ADC引脚的cz,我可以通过串口编程基于SUOTA的代码吗?
第二,即使禁用调试器,我的ADC仍然不读取数据,还有什么我在代码中丢失的吗?
请帮忙,谢谢
设备:
你好,mahmed106,
谢谢你的问题。正如所附的论坛帖子中提到的,P2泷4用于SWCLK和ADC,因此您应该禁用调试器,以防您想用作ADC pin。
应该在系统初始化时以及在periph_init()函数之前禁用调试器。在periph_init()中,您应该将P2_4配置为ADC引脚。通过这种方式,调试器在您的软件中被禁用,因此您不能使用JTAG接口与QSPI flash交互。您可以使用UART接口(erase\u qspi\u serial\u win/program\u qspi\u serial\u win scripts),而不是使用JTAG接口擦除/编程flash。
如果您在应用层禁用调试器,您应该首先擦除UART上的flash,然后您可以使用JTAG进行编程。在应用程序代码中禁用调试器并不意味着永久禁用调试器。
另一种可能的解决方案是,每次您想使用ADC外围块时,都将P2琰4重新配置为ADC。在使用它捕获ADC之后,应该将其配置回SWCLK。
谢谢,下午好
嗨对话框
谢谢你的建议,我试过这种方法
“另一种可能的解决方案可能是,每次要使用ADC外围块时,都要将P2琰4重新配置为ADC。使用它捕获ADC后,应将其配置回SWCLK
我可以通过JTAG编程,当我禁用调试器时,但是我的ADC值读取为零,,,,,我现在不知道为什么ADC仍然不工作,,
所有其他ADC都工作正常。
有没有任何其他设置,我需要做的ADC工作在这个引脚P2\ U 4?
你好,mahmed106,
谢谢你跟随我的方法。您所需要做的只是在系统初始化中或者在将P2泷4用作ADC引脚之前禁用调试器(当然,首先根据建议重新配置它)。您不应该对P2琰4进行任何特殊配置。请尝试我的第一种方法并在系统初始化中禁用调试器(在调用periph\u init()之前)?之后,您应该在periph\u init()中配置P2\u 4和ADC引脚。
谢谢,下午好
是的,我做的和你提到的完全一样,我在periph init之前禁用了调试器,在periph init中我把这个pin作为ADC(下拉配置)
但这个模数转换器仍然不工作,其他模数转换器工作正常。
你好,mahmed106,
所以,如果调试器被禁用,只有P2泷4不能作为ADC引脚工作?你能分享一下P2泷4的配置和你是如何使用ADC适配器的吗?
谢谢,下午好