程序在uart的system_init上被阻止了吗?还是I2C?

2帖子 / 0新
最后一篇文章
Jamesleo-Konka
离线
最后一次露面:4年2个月前
加入:2017-01-22 02:42
程序在uart的system_init上被阻止了吗?还是I2C?

嗨,对话,
我的I2C设备具有程序的两个部分:初始杂志 /操作。
我把它放在项目HRP_SENSOR中。
初始量代码是在函数system_init上:(已定义了retarget)
// ---------------------------------------------------------------
静态void system_init(void *pvparameters)
{
OS_TASK句柄;
未签名的char d;
i2c_device dev;

#如果定义的config_retarget
extern void retarget_init(void);
#万一
...
...
#如果定义的config_retarget
retarget_init();
#万一

printf(“ ble hrp demo” newline);

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

max30100_Reset(dev);
d = max30100_read(dev,max30100_part_id);
printf(newline“ part id =%02x”,d);//---这行效果很好,程序在这里被阻止
d = max30100_read(dev,max30100_revision_id);
printf(newline“修订版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
嗨,詹姆斯利 - 康卡,

嗨,詹姆斯利 - 康卡,

我无法说明为什么在设备连接时发生printf()的其余部分,除非您在主任务功能中有相关的代码,否则我找不到任何类型的逻辑在HRP_Sensor上启用AD_I2C_ASYNCH_TRANSACT()或直接在HRP_SENSOR上启用RETARGET,直接在我这一边复制此内容,或者直接或PLAIN I2C_TRANSACT或AD_I2C_READ()和AD_I2C_READ()和AD_I2C_WRITE()和I2C Slave设备上的I2C从设备上打开I2C Module Operate Operate Operatie operatie operation operia,我能够打开I2C模块化操作。交易并打印出有关广告的数据。在System_Init()函数中具有自定义代码是通常不建议使用的,请在“专用任务”功能中使用任何自定义代码,然后在输入for for for for您的任务之前。

谢谢mt_dialog