程序在System_Init封锁,UART?或i2c?

2个帖子/ 0新
最后一篇
jamesleo-konka
离线
最后一次露面:4年2个月前
加入:2017-01-22 02:42
程序在System_Init封锁,UART?或i2c?

嗨,对话框,
我的I2C设备有两个程序:初始化/操作。
我把它放在project hrp_sensor中。
initialazing代码处于函数system_init :(已定义Retarget)
// -------------------------------------
静态void system_init(void * pvparameters)
{
OS_TASK手柄;
unsigned char d;
i2c_device dev;

#if定义了config_retarget.
extern void retarget_init(void);
#万一
....
....
#if定义了config_retarget.
retarget_init();
#万一

Printf(“BLE HRP演示”换行符);

dev = ad_i2c_open(max30100);// ---- i2c设备初始化----------------------

MAX30100_RESET(DEV);
d = max30100_read(dev,max30100_part_id);
printf(换行符“部分ID =%02x”,d);// ----此行工作正常,程序在此封锁
d = max30100_read(dev,max30100_revision_id);
Printf(换行符“修订ID =%02x”,d);

//设置LED电流
max30100_setleds(dev,i11,i8);
....
....
// -----------------------------------------------------------------------

当DA14681运行时,我的UART终端如下所示:
// -----------------------------
'''BLE HRP演示
部分ID = 11
// -----------------------------
使用移动设备连接此BLE设备时,下一个输出'修订版ID = 05'将继续。
在后台发生了什么?
如何提高我的代码?
注意:我的I2C设备由函数AD_I2C_READ(),AD_I2C_WRITE() - ---它们在异步模式下工作。

谢谢

关键词:
设备:
mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11:34
嗨jamesleo-konka,

嗨jamesleo-konka,

我无法告诉为什么打印机的其余部分发生在设备已连接时发生,除非在主要任务功能中有相关代码,否则我无法找到任何类型的逻辑,我也无法解决在使用AD_I2C_ASYNCH_TRANSACT()直接或使用I2C从设备上的AD_I2C_READ()和AD_I2C_READ()和AD_I2C_RED()上的HRP_SENSOR上启用了RETRARGET在HRP_SENSOR上启用了retarget。我能打开I2C模块操作交易并打印出广告数据。在System_Init()函数中具有自定义代码是它一般推荐的东西,请在专用任务函数中有任何自定义代码,只是在输入任务的循环之前。

谢谢mt_dialog.