主题中讨论的其他器件:HALCOGEN
当 在 SL 库中运行 SCI_ANALOIP_TEST 时、测试在等待 SCI 进入空闲状态时挂起。 虽然我注意到文档中提到必须正确校准 pinmux、但我无法确定错误配置了哪些引脚。 我在调用 SL 测试之前调用 HALCoGen 标准 sciInit ()函数,所以我不确定还需要做些什么来确保测试不会挂起。
...
感谢任何帮助。
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.
当 在 SL 库中运行 SCI_ANALOIP_TEST 时、测试在等待 SCI 进入空闲状态时挂起。 虽然我注意到文档中提到必须正确校准 pinmux、但我无法确定错误配置了哪些引脚。 我在调用 SL 测试之前调用 HALCoGen 标准 sciInit ()函数,所以我不确定还需要做些什么来确保测试不会挂起。
...
感谢任何帮助。
您好、Robin、
我刚刚进行了 SCI 回扫测试、结果运行良好。
/*包含文件*/
#include "sys_common.h"
/*用户代码开始(1)*/
#include "sci.h"
#define TSIZE 18
UINT8文本[TSIZ]={'M'、'I'、'C'、'R'、'O'、'C'、'O'、'N'、'T'、'O'、'L'、'L'、'E'、'R'、'S、'、'、'、'、'、'、'、'、'、'};
#define UART scilinREG
/*用户代码开始(2)*/
unsigned char rxData[18];
/*用户代码结束*/
/**@fn void main (void)
*@简介应用程序主要功能
*@注意此功能默认为空。
*
*此函数在启动后调用。
*用户可以使用此函数来实施应用程序。
*/
/*用户代码开始(2)*/
/*用户代码结束*/
int main (空)
{
/*用户代码开始(3)*/
UINT32长度= TSIZE;
Uint8 *文本;
文本=text[0];
sciInit();/*初始化 sci/sci-lin */
_enable_irq();
sciEnableLoopback (UART、Digital_LBK);
/**-将 SCI 配置为接收8字节的命令信息*/
sciReceive (UART、1、rxData);
while (length --)
{
while ((UART->FLR 和0x4)=4);/*等待直至忙*/
sciSendByte (UART、*文本++);/*发出文本*/
};
while (1)/*连续无玩法*/
/*用户代码结束*/
返回0;
}
/*用户代码开始(4)*/
/**@fn void sciNotification (unsigned flags)*/
void sciNotification (sciBASE-t * sci、无符号标志)
{
/**检查有效命令
**-入门
*! -命令结束
*/
/**-准备好接收下一个命令*/
sciReceive (UART、1、rxData);
}
/*用户代码开始(4)*/
/*用户代码结束*/
您好、QJ。 理想情况下、我们应使用 SafeTI 库来运行该测试。 我已经加倍了您在这里的设置、从用户方面、我已经将所有内容都匹配起来。 但是、当我运行 SafeTI 命令 slRet = SL_SelfTest_LIN (LIN_ANAL_Loopback_test、SL_LIN1)时、或者如果 SCI 等效命令仍然挂起。
下面是一个例子:
bool slRet = false; /* Run SCI Analog Loopback test. */ /* IRQ & FIQ are normally disabled before runtime */ _enable_interrupt_(); slRet = SL_SelfTest_LIN(LIN_ANALOG_LOOPBACK_TEST, SL_LIN1); if (slRet != true) { return false; }
此行不会检查正确的寄存器。 我认为它应该类似于 SCI 测试的检查、看起来像
if (((LIN_GCR0_RESET_BITE|LIN_GCR1_SWRST_BIT)!=(SL_LINREG->GCR1和 LIN_GCR1_SWRST_BIT)|(SL_LINREG->GCR0和 LIN_GCR0_RESET_BIT))
请确认这是否是错误以及是否可以测试 SL API 函数。
您好、Robin、
我想我发现了这个问题:
但是、当我运行 SafeTI 命令 slRet = sl_SelfTest_lin (lin_analog_loopback_test、sl_LIN1)时、或者 SCI 等效文件仍挂起。
为什么要运行"sl_SelfTest_LIN"函数来 执行 SCI 模拟环回?
实际上、 您应该直接运行"sl_SelfTest_SCI"函数?
实际上"sl_SelfTest_LIN"将用于 LIN 环回测试、而不用于 SCI 环回测试。 即使大多数寄存器地址相同、但我们无法保证 LIN 和 SCI 的寄存器中的所有位都相同。
因此、请使用正确的函数并对其进行测试。
--
谢谢。此致、
Jagadish。
您好、Robin、
可以使用"sl_SelfTest_SCI"函数。
我遇到的唯一问题是、它卡在以下情况。
如果我们没有在引脚多路复用器中启用 SCI 引脚、
如果我们为 SCI 启用 pinmux、则我不会看到 sl_SelfTest_SCI 函数的任何其他问题。
为了简化调试、我刚刚将 sl_SelfTest_SCI 函数代码复制到新项目中并进行了测试。 下面是我测试的项目:
e2e.ti.com/.../SCI_5F00_Analogue_5F00_Loopback_5F00_test_5F00_LS3137.zip
--
谢谢。此致、
Jagadish。