器件型号:TMDXIDK5728
工具/软件:TI-RTOS
尊敬的所有人:
我尝试让 RS-485在 IDK 上运行、但我遇到了一些问题。 基本上、我删除了所有其他代码、将其分解为 UART 例程。
我使用的是 am5728x IDK v1.2处理器 SDK RTOS AM57xx 4.2.0。
/*主入口点*/
int main()
{
/* Init Board */
initBoard();
BiosTaskCreate (UART_TEST、
"UART_TEST"、
8、4096);
/*启动 BIOS 6调度程序*/
BIOS_start ();
返回0;}
static int initBoard()
{
/*呼叫板初始化函数*/
board_initCfg boardCfg;
boardCfg = Board_init_PINMUX_CONFIG |
Board_init_module_clock;//| Board_init_uart_stdio;
board_init (boardCfg);
}
void UART_TEST (UARg arg0、UARg arg1)
{
UART_Params uartParams;
int32_t 计数;
字符输入='\n';
buffchar Pointer[1000];
char echoPrompt[]="\n";
char echoPrompt1[]="接收到的数据为\n";
// CSL_xbarDspIrqConfigure (1、
// CSL_XBAR_INST_DSP1_IRQ_34、
// CSL_XBAR_UART2_IRQ);
UART_INIT();
/*创建一个数据处理关闭的 UART。 *
UART_PARAMS_INIT (uartParams);
uartParams.writeMode = UART_MODE_BLOCKING;
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readReturnMode = UART_return_full;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.baudrate = 9600;
UART_Handle = UART_open (0x01、uartParams);
//首次写入不起作用
UART_WRITE (UART_Handle、echoPrompt、sizeof (echoPrompt));
while (1)
{
UART_WRITE (UART_Handle、echoPrompt1、sizeof (echoPrompt));
Task_sleep (250);
}
}
我已经使用这些示例开始了。 原理图和引脚多路复用器显示、RS-485连接到 UART2。 我打开了0x01、得到了正确的句柄和地址。 一切看起来都很好、但我永远不会从写入例程中恢复、因为它会在 UART_write2_v1的信标中存根:
if (object->params.writeMode = UART_MODE_Blocking) { /*锁定并等待 Hwi 完成。 * semStatus = UART_osalPendLock (object->writeSem、 事务->超时);
有趣的部分是、该示例与 UART3配合使用、因此我从 FTDI 获取响应。 也许这是一件容易的事情、但我再也不知道从哪里开始。
谢谢!