ewge 发表于 2024-1-19 11:05

HC32F460串口怎么配置单线半双工模式?

本帖最后由 ewge 于 2024-1-19 13:18 编辑

最近做的一个用串口通信的项目,要用单线全双工和模块相互通信,看了相关例程和文档,也都不知道怎么配置单线半双工模式。还是只支持全双工通信?希望有大佬帮忙解答一下,谢谢

ewge 发表于 2024-1-19 18:07

本帖最后由 ewge 于 2024-1-19 18:16 编辑

我的代码如下:
void uart2_init(uint32_t baudtate)
{
    uint32_t u32Fcg1Periph = PWC_FCG1_PERIPH_USART1 | PWC_FCG1_PERIPH_USART2 ;
    const stc_usart_uart_init_t stcInitCfg = {
      UsartIntClkCkOutput,
      UsartClkDiv_1,
      UsartDataBits8,
      UsartDataLsbFirst,
      UsartOneStopBit,
      UsartParityNone,
      UsartSampleBit8,
      UsartStartBitFallEdge,
      UsartRtsEnable,
    };
      /* Enable peripheral clock */
    PWC_Fcg1PeriphClockCmd(u32Fcg1Periph, Enable);
      /* Initialize USART IO */
    PORT_SetFunc((en_port_t)USART2_TX_PORT, (en_pin_t)USART2_TX_PIN, Func_Usart2_Tx|Func_Usart2_Rx, Disable);
    /* Initialize UART */
    USART_UART_Init(M4_USART2, &stcInitCfg);
    /* Set baudrate */
    USART_SetBaudrate(M4_USART2, baudtate);
    /*Enable RX && RX interupt && timeout interrupt function*/
      USART_FuncCmd(M4_USART2, UsartTx, Enable); //使能发射
      USART_FuncCmd(M4_USART2, UsartRx, Enable); //使能接收

}
在该模式下,使用 TX引脚进行数据的发送和接收,不占用 RX 引脚。写数据到 USARTn_DR.TDR寄存器后,UARTx_TXD 引脚立即进入发送状态,输出 USARTn_DR.TDR 寄存器中的数据。数据 发送完成后,UARTx_TXD 引脚恢复到常态的接收状态。

elephant00 发表于 2024-1-31 10:02

建议参考HC32F460的硬件手册

两只袜子 发表于 2024-1-31 10:03

首先,你需要配置串口的初始化参数,包括波特率、数据位、停止位、奇偶校验等。然后进行GPIO引脚和中断配置等
页: [1]
查看完整版本: HC32F460串口怎么配置单线半双工模式?