你好,
如果通信配置为TX=P0_0和RX=P0_1,为什么DA14531 prod_test不能可靠地在Development Kit-Pro和Development Kit-USB上运行。我发现,用于设置UART引脚的port_sel变量保持未初始化。大多数情况下,包含port_sel变量的内存保持一个零值,匹配P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL常量,并且应用程序按照预期工作。但有时内存包含非零值,应用程序无法通信。
我成功地解决了这个问题,通过在文件user_peri_setup .c的函数peri_init()的开头添加以下行:
port_sel = UART_PORT_SEL;
将这一行添加到user_外围_setup.h中,就在enum的定义之后:
#定义UART_PORT_SEL P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL;
此致。
Jean-Christian de Rivaz
关键词:
设备:
嗨Jean-Christian,
请参考AN-B-077: DA14531蓝牙直接测试模式DA14531支持网页的申请说明。为了在P00和P01上从2线UART模式运行prod_test,您将找到应该遵循的适当步骤和配置。非常感谢您的意见和反馈,但是您提到的修改是不需要的。请按照下面的步骤操作。我用DA14531 Pro-DK在我这边测试了它。
1.请打开prod_test项目,没有SDK6.0.12提供的任何修改。\
2.在“user_peri_setup .h”中修改gpio配置如下。更多信息请参见4.1 AN的软件设置。
3.编译项目并下载fw到System-RAM。这可以通过3种选择来实现:
- 按“开始/停止调试会话”按钮两次Keil IDE
- SmartSnippets工具箱(SST)启动器
- SST RF-Master固件下载工具
4.下一步是对SST进行相应配置。因此,打开SST和“板设置”。您应该为P0_0和P0_1选择UART配置。更多信息请参考4.1.1设置射频Master的Rx/Tx测试模式。
5.现在,你应该能够使用RF主人!
谢谢,PM_DIALOG.
感谢您的答复。
我也遵循了这个指示。这在大多数情况下是可行的,但是由于port_sel变量未初始化,结果并不可靠。如果port_sel偶然不为零,端口引脚永远不会为UART操作配置,通信也不会工作。在SDK/6.0.12.1020.2/projects/target_apps/prod_test文件夹下,port_sel变量没有被初始化为P0_0_AND_P0_1_INITIALIZED_FROM_EXT_TOOL常量。
/6.0.12.1020.2/projects/target_apps/prod_test
prod_test / src / config / user_periph_setup.h:走读生uint8_t port_sel;
prod_test / src / platform / user_periph_setup.c:uint8_t port_sel __section_zero(“prodtest_uninit”);
prod_test / src / platform / user_periph_setup.c:switch(port_sel)
prod_test / src / platform / user_periph_setup.c:switch(port_sel)
注意:由于某些原因,这个问题在DA14531“Kit-USB”板上比在DA14531“Kit-Pro”板上更经常发生。
嗨Jean-Christian,
谢谢你的建议。我会在内部检查并测试您建议的解决方案。再次感谢您的建议!
谢谢,PM_DIALOG.