嗨对话框
我正在使用基于DA14681的板,我想使用6个热敏电阻,为此我必须使用一个ADC引脚,与SWD引脚共享,(SWD CLK和SWDIO)。
我配置了这个大头针,但它没有工作,然后从这个查询,我意识到调试器需要禁用这个大头针工作,(https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。)
但仍然没有进展。
首先,我不知道在代码的哪里我需要禁用调试器。我在外设初始化之前做了这个,我认为它禁用了调试器,cz现在JTAG不是编程的板。所以我不得不通过SUOTA烧代码。
如果我的JTAG禁用了这个ADC引脚,我可以通过串行编程一个基于SUOTA的代码吗?
其次,即使禁用了调试器,我的ADC仍然没有读取数据,还有什么我在代码中丢失的?
请帮忙,谢谢
设备:
嗨mahmed106,
谢谢你的问题。正如所附的论坛帖子中提到的,P2_4用于SWCLK和ADC,所以你应该禁用调试器,以防你想使用ADC引脚。
调试器应该在系统初始化时和在使用peripher_init()函数之前禁用。在peripher_init()中,应该将P2_4配置为ADC引脚。通过这种方式,调试器在您的软件中被禁用,因此您不能使用JTAG接口与QSPI flash进行交互。您可以使用UART接口(erase_qspi_serial_win / program_qspi_serial_win脚本),而不是使用JTAG接口来擦除/编程flash。
如果在应用层禁用调试器,应该首先擦除UART上的flash,然后才能使用JTAG进行编程。在应用程序代码中禁用调试器,并不意味着永久禁用调试器。
另一种可能的解决方案是,每次使用ADC外围块时都将P2_4重新配置为ADC。在使用它捕获ADC之后,您应该将它配置回SWCLK。
谢谢,PM_Dialog
嗨对话框
谢谢你的建议,我已经尝试过这个方法了
“另一种可能的解决方案可能是在每次使用ADC外围块时重新配置P2_4为ADC。在使用它捕获ADC之后,您应该将它配置回SWCLK。”
我可以通过JTAG编程,当我禁用调试器,但我的ADC值读取为零,,,,我不知道现在为什么ADC仍然不工作,,
所有其他adc工作正常。
为了让ADC在P2_4引脚上工作,我还需要做什么其他设置吗?
嗨mahmed106,
谢谢你遵循我的方法。所有您需要做的是在系统初始化或使用P2_4作为ADC引脚之前禁用调试器(当然,首先按照建议重新配置它)。您不应该对P2_4进行任何特殊配置。您能否尝试我的第一种方法并在系统初始化(在调用peripher_init()之前)禁用调试器?之后,应该在peripher_init()中配置P2_4和ADC引脚。
谢谢,PM_Dialog
是的,我已经照你说的做了。,我在periph初始化之前禁用了调试器,并且在periph初始化中我把这个引脚作为ADC(下拉配置)
这个adc仍然不工作,其他adc工作良好。
嗨mahmed106,
所以,如果调试器被禁用,只有P2_4不作为ADC引脚工作?能否分享一下P2_4配置以及如何使用ADC适配器?
谢谢,PM_Dialog