您好,
我正在开发一个基于物联网SDK v5.160.1.19的项目,使用Murata ZY模块和DA14580。
我已经修改了固件,使我的主板与物联网APK配合良好。
我使用P1_4和P1_5作为GPIO来接收LED电流,例如,有闪烁的LED用于BT指示。
我注意到,即使不禁用调试器模块,我也可以在这些GPIO上使用GPIO_ConfigurePin(…)。
但其效果是,这些引脚上的静态电压将为~900mV,而不是V_H=3.3V(可能是由于内部调试器电路)。这反过来会导致LED没有完全关闭。参见附件PDF中的第一页。
现在我在初始化上的用户应用程序中使用SetBits16(SYS_CTRL_REG,debugger_ENABLE,0)禁用调试器:
在初始化(void)上无效用户应用程序(void)
如果BLE_BAS SERVER
如果BLE BAS SERVER
如果BLE BAS batt_init()
如果BLE DIS SERVER
endif
if BLE_SPOTA_RECEIVER
app_spotar_init();
endif
if(GetBits16(SYS_STAT_REG,PER_IS_DOWN)){
DBG_MSG(“initPER@APP_INIT\r\n“;
外围传感器初始化();
}
用户外围传感器初始化();
用户外围传感器暂停()
wrbl_env.adv_mode=adv_mode_FAST;
//初始化所有包含的配置文件的服务访问写入权限
prf_init_srv_perm();
arch_set_sleep_模式(应用程序默认睡眠模式)
//禁用调试器模块以将P1_4和P1_5用作GPIO
SetBits16
结果如预期,LED熄灭-但仅在运行的前2秒。之后,我再次观察到静态电压为~900mV,而不是3.3V。
请参阅所附PDF的第二页,该页显示了启动后的行为。
似乎调试器模块在短时间后重新启动。
但是,在SetBits16的代码中只有一次出现(SYS\u CTRL\u REG,DEBUGGER\u ENABLE,1)在出现看门狗超时的情况下,它位于hardfaul\u handler.c中,只有在定义了CFG\u DEVELOPMENT\u DEBUG的情况下才会执行。
这似乎不是罪魁祸首。
您知道是什么原因吗?
祝您好运,
Johannes
附件:
设备:
2018年7月7日星期六16:18:53+0000
约翰内斯先生
204034 athttps://support.dialog-semiconductor.com
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-使用swdioswclk gpio的软件/问题#注释