请问:
我的使用情况:
硬件:测试io (p3_5)外接领导,外挂eepm芯片到i2c2 (p4_0 p4_1)
软件:
1 .配置uart作为调试使用
2.官方pxp_reporter工程,pxp任务正常打开,同时新建一个1周期测试任务,执行io翻转,代码正常运行。
3 .官方pxp_reporter工程,屏蔽掉pxp任务,同时在测试任务下新增初始化i2c2,写eepm地址0 x00,数据:0 x51周期读取地址0 x00,数据等于0 x51代码正常运行。
#如果0
/*启动PXP报表应用程序任务。* /
OS_TASK_CREATE("PXP Reporter", /*分配给任务的文本名称,for
调试;不被内核使用。* /
pxp_reporter_task, /*实现任务的函数。* /
NULL, /*传递给任务的参数。* /
#if (dg_configDISABLE_BACKGROUND_FLASH_OPS == 1)输出说明
512, /*分配给
堆栈的任务。* /
其他#
768, /*分配给
堆栈的任务。* /
# endif
mainPXP_REPORTER_TASK_PRIORITY, /*任务分配的优先级。* /
处理);/*任务句柄。* /
OS_ASSERT(处理);
# endif
问题:当我在恢复pxp任务,同时周期读取i2c2的地址0 x00数据时,每次都只能随机的读取几次,之后da14681出现死机情况。
注:
1 .判断死机的依据是:led灯不能正产翻转点亮,串口无循环数据打印
2. eepm的驱动是参考sdk包下peripherals_demo工程中的demo_i2c.c
请官方和使用da14681的解决下,非常感谢!
设备:
你是用的是IIC的异步方式吗?是不是有IIC读写回调的那种吗?
不是,我用的同步方式。你用异步回调可以不冲突么?
你看一下,你有没有在IIC的操作里面,调用了OS_EVENT_WAIT (dev_config - > bus_data - >事件,OS_EVENT_FOREVER);
不知道你具体是怎么配置的。但是我之前试过,偶尔会因为这个的回调没有,导致永久阻塞。
i2c的使用要调用对话框SDK i2c适配器,外围示例项目有这样的样本
3 q,使用适配器对应的i2c访问外设时,问题解决。
嗨Jelphi,
再请问一个i2c的问题,我使用广告函数读写at24c32,每次上电使用freertos的软件定时器周期触发读写,
但是第一次读写总是不成功,但是之后定时器触发同样的读写操作都成功了。
请问这是什么问题?
同样的我在system_init()初始化读写at24c32也不成功,但是再任务中周期调用at24c32_test ();是操作成功的。
/*初始化BLE适配器*/
ad_ble_init ();
/*初始化BLE管理器*/
ble_mgr_init ();
/ /读写at24c32
at24c32_test ();/******************读写失败********************/
/*启动PXP报表应用程序任务。* /
OS_TASK_CREATE(“PXP Reporter”,... ...
非常期待回复!
请问下这个问题如何解决?
同样的函数at24c32_test()在任务中周期调用都可以成功操作,但是在初始化的时候就无法成功读写。
有技术支持,支持下么?
会不会是I2C还没有初始化完成嘞?
我的测试代码,是在i2c相关的初始化代码后面的,其他有遇到类似情况的人么?希望得到技术支持。
没人遇到类似的问题么,求指导。
我现在也遇到了这样的问题,正常运行几次就死机了。我还是用的手册上给的例子。
I2C_dev = ad_i2c_open (M41T62);
ad_i2c_transact (I2C_dev TX 1 RX 7);
ad_i2c_close (I2C_dev);
而且我发现经常不知道什么原因就死机了,不知道你们有没有遇到类似问题。
你改用异步写操作就可以了,可以参考官方演示:eeprom_24XX256_read.c . h