本帖最后由 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 引脚恢复到常态的接收状态。 |