请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM2634 工具与软件:
与 Tamagawa 编码通信时、我将 RTSn 配置为 GPIO (软件流控制)。 通信测试在没有断点的情况下通过。
当 断点在调试时处于活动状态时、 UART_RXFIFO_LVL 小于预期值。 当 断点处于非活动状态时、不会出现此问题。
void encSendDataInBytes(const uint8_t* data, uint8_t len) { uint8_t u8Tmp = 0; //read the data to flush the rx fifo while((uint16_t)HW_RD_REG32(ENC_UART_ADR + UART_RXFIFO_LVL) != 0 ) { u8Tmp = (uint8_t)HW_RD_REG32(ENC_UART_ADR + UART_RHR); } HW_WR_REG32(ENC_UART_ADR + UART_FCR, HW_RD_REG32(ENC_UART_ADR + UART_FCR) | 0x6); //send the data GPIO_pinWriteHigh(GPIO_ENC_DE_BASE_ADDR,GPIO_ENC_DE_PIN);//set RTSn high while(len--) { UART_putChar(ENC_UART_ADR, *data++); } while (((uint32_t) (UART_LSR_TX_SR_E_MASK | UART_LSR_TX_FIFO_E_MASK) != ((uint32_t) (UART_LSR_TX_SR_E_MASK |UART_LSR_TX_FIFO_E_MASK) & HW_RD_REG32(ENC_UART_ADR + UART_LSR) ))); GPIO_pinWriteLow(GPIO_ENC_DE_BASE_ADDR,GPIO_ENC_DE_PIN);//set RTSn low }
我想启用 硬件流控制来实现此功能、但 AM263x_SDK 中没有 API。 如何 启用 UART 的硬件流控制?
是否有我可以参考的示例?