主题中讨论的其他器件: MIOTY、 Sysconfig
工具/软件:
您好:
我想通过具有硬件流控制的 Uart2与我的 CC1352R 板进行通信、或者与另一个 CC1352R 板进行通信。 我使用 SDK 5.30
因此、我已在.syscfg 中为 UART2启用流控制。 我想 在阻塞模式下使用 UART2。
UART 通信运行良好、但没有流控制。 如果断开 CTS 并将其设置为高电平或低电平、通信仍然有效。
我使用逻辑分析仪检查了 UART:RTS 始终为高电平、CTS 始终为低电平。
请帮帮我。
我的代码是:
/* * ======== mainThread ======== */ void *main_uart(void *arg0) { uint8_t uart_rx_buffer[UART_BUFFER_SIZE]; /* Buffer for UART */ uint32_t status = UART2_STATUS_SUCCESS; /* Create a UART in CALLBACK read mode */ UART2_Params_init(&uartParams); uartParams.baudRate = 115200; uartParams.writeMode = UART2_Mode_BLOCKING; //uartParams.writeCallback = writeCallback; uartParams.readMode = UART2_Mode_BLOCKING; //uartParams.readCallback = callbackFxn; uartParams.readReturnMode = UART2_ReadReturnMode_FULL; uart = UART2_open(CONFIG_UART2_0, &uartParams); if (uart == NULL) { /* UART2_open() failed */ while (1); } status = UART2_write(uart, "test", 4 , &numBytesWritten); if (status != UART2_STATUS_SUCCESS) { /* UART2 read() failed */ printf("%d\n", status); while (1); } /* Loop forever echoing */ while (1) { numBytesRead = 0; //Only Tx if both flags false if(!uart_flag_tx_mioty && !uart_flag_tx_ble) { status = UART2_readTimeout(uart, uart_rx_buffer, UART_BUFFER_SIZE, &numBytesRead, 5000); if (numBytesRead > 0) { UART2_write(uart, "test", 4, &numBytesWritten); }