主题中讨论的其他器件:CC3220S
在总线故障状态期间、当 I2C SCL 线路被一个从器件或短接线卡在低电平时、整个处理器锁定。 我正在阻塞模式下使用 I2C。 我认为它不应该以这种方式处理它。 我从 最新的 SDK 中查看了 I2CCC32XX.c、至少我可以说、它似乎没有解决这个问题。 一种简单的测试方法是在引导时将 SCL 接地、您将看到它锁定。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在总线故障状态期间、当 I2C SCL 线路被一个从器件或短接线卡在低电平时、整个处理器锁定。 我正在阻塞模式下使用 I2C。 我认为它不应该以这种方式处理它。 我从 最新的 SDK 中查看了 I2CCC32XX.c、至少我可以说、它似乎没有解决这个问题。 一种简单的测试方法是在引导时将 SCL 接地、您将看到它锁定。
尊敬的 Andrew:
我们最近为 I2C 实现了新的超时功能、该功能将在下一版 SDK 中提供。 同时、您可以将随附的文件添加到您的 CCS 工程中、直到下一个 SDK 可用。
此致、
Janet
Janet、
感谢您提供该代码。
因此、我只需将文件添加到我的常规源文件中、编译器就会自动使用这些文件、而不是从当前的 SDK 源文件中提取?
我假设我需要使用 I2C_transferTimeout()而不是 I2C_transfer()?
此外,在哪里可以找到 sys tick 传递到 I2C_transferTimeout()的时间?
我看到 I2C_transferTimeout()不会返回像 I2C_transfer()这样的 bool。
*==== I2C_transfer ==== // bool I2C_transfer (I2C_Handle handle、I2C_Transaction * transaction) { int_fast16_t 结果=(handle->fxnTablePtr->transferFxn (handle、transaction、I2C_wait_forever)); if (result=I2C_STATUS_SUCCESS){ 返回(true); } 否则{ 返回(false); } } /* === I2C_transferTimeout ==== // int_fast16_t I2C_transferTimeout (I2C_Handle handle、I2C_Transaction *事务、uint32_t 超时) { 返回(handle->fxnTablePtr -> transferFxn (handle、transaction、timeout)); }
下面是它在旧 SDK 中的情况
/* === I2C_transfer ==== // bool I2C_transfer (I2C_Handle handle、I2C_Transaction * transaction) { 返回(handle->fxnTablePtr -> transferFxn (handle、transaction)); }
我还发现在 I2CCC32XSX_hwiFxn()内部为 I2CCC32XX_TIMEOUT 添加了一个案例,该案例可能用于时钟低电平超时,但未使用。
尊敬的 Andrew:
是的、没错。 通过将这些文件添加到项目中、将使用它们、而不是驱动程序库中的 I2C。
I2C_transferTimeout()返回状态代码。 在阻塞模式下、它将是 I2C_STATUS_SUCCESS、I2C_STATUS_ERROR 或 I2C_STATUS_TIMEOUT、因此您需要检查返回值。
要获得以微秒为单位的节拍时间,可以使用 ClockP_getSystemTickPeriod():
#include
uint32_t tickPeriodu;
tickPeriodUs=ClockP_getSystemTickPeriod();
此致、
Janet
Janet、
我终于开始尝试将这些集成到中。 我右键单击项目名称、然后"添加文件"、然后将其复制到中。 我尝试组合、但我会得到一个很长的编译错误列表:
说明资源路径位置类型
未声明的'I2C_STATUS_TIMEOUT'(在此函数中首次使用) I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 977 C/C++ problem
未声明的'I2C_WAIT_Forever (在此函数中首次使用) I2C.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 137 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第451行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路456 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路464 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路469 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路476 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第479行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 500 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 行537 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第729行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第732行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 736 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路742 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第745行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第329行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第341行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 350 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第357行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第798行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路801 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路805 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第811行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'burstWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 819 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 365 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第387行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 428 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路463 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 500 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第513行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 行537 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第728行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第732行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第845行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 859 C/C++线路问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalReadCountIdx'的成员;您是指'readCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第889 C/C++行问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路349 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第357行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 363 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第387行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第797行 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路801 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 818 C/C++ problem
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 线路842 C/C++问题
'I2CCC32XX_Object{aka struct I2CCC32XX_Object}'没有名为'totalWriteCountIdx'的成员;您是指'writeCountIdx'? I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc 第852行 C/C++问题
'I2CCC32XX_TIMEOUT'未声明(在此函数中首次使用) I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 324 C/C++ problem
'I2CCC32XX_TIMEOUT'未声明(在此函数中首次使用) I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 1017 C/C++ problem
gmake:***[I2C.o]错误1 OUT_OW_BOOD_CC3220S_LAUNCHXL_tirtos_gcc C/C++问题
gmake:***[I2CCC32XX.o]错误1 OUT_OW_BOOD_CC3220S_LAUNCHXL_tirtos_gcc C/C++问题
gmake:目标"全部"不会由于错误而重新生成。 out_for_box_CC3220S_LAUNCHXL_tirtos_gcc C/C++问题
目标'I2C.o'的配方失败 subdir_rules.mk /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc/调试行9 C/C++问题
目标'I2CCC32XX.o'的配方失败 subdir_rules.mk /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc/调试行9 C/C++问题
函数'handle->fxnTablePtr->transferFxn' I2C.c /out_of_box_CC3220S_LAUNCHXL_tirtos_gcc line 137 C/C++ problem 的参数过多
函数'handle->fxnTablePtr->transferFxn' I2C.c /out_of_box_CC3220S_LAUNCHXL_tirtos_gcc line 152 C/C++ problem 太多参数
从不兼容的指针类型[-Wincompatible -pointer-types] I2CCC32XX.c /out_for_box_CC3220S_LAUNCHXL_tirtos_gcc line 108 C/C++ problem 初始化