MCUXPRESSO IDE rt1064 初始化串口的代码
时间: 2024-05-04 15:20:39 浏览: 120
串口初始化代码生成器
4星 · 用户满意度95%
以下是MCUXpresso IDE初始化串口(UART)的示例代码:
```c
#include "board.h"
#include "fsl_debug_console.h"
#include "fsl_uart.h"
/*******************************************************************************
* Definitions
******************************************************************************/
/* UART instance and clock */
#define UART UART3
#define UART_CLKSRC UART3_CLK_SRC
#define UART_CLK_FREQ CLOCK_GetFreq(UART3_CLK_SRC)
#define UART_IRQn UART3_RX_TX_IRQn
#define UART_IRQHandler UART3_RX_TX_IRQHandler
/* UART configuration, baudrate, data bits, parity, stop bits. */
uart_config_t uartConfig = {
.baudRate_Bps = 115200,
.enableTx = true,
.enableRx = true,
.parityMode = kUART_ParityDisabled,
.stopBitCount = kUART_OneStopBit,
.bitCountPerChar = kUART_8BitsPerChar,
.txFifoWatermark = 0,
.rxFifoWatermark = 1,
.enableRxRTS = false,
.enableTxCTS = false,
};
/*******************************************************************************
* Prototypes
******************************************************************************/
/*******************************************************************************
* Variables
******************************************************************************/
/*******************************************************************************
* Code
******************************************************************************/
/*!
* @brief Main function
*/
int main(void)
{
uart_transfer_t xfer;
uint8_t data = 'a';
/* Initialize board hardware. */
BOARD_InitPins();
BOARD_BootClockRUN();
BOARD_InitDebugConsole();
/* Init UART */
UART_Init(UART, &uartConfig, UART_CLK_FREQ);
UART_TransferCreateHandle(UART, &g_uartHandle, UART_UserCallback, NULL);
/* Send data */
xfer.data = &data;
xfer.dataSize = sizeof(data);
UART_TransferSendNonBlocking(UART, &g_uartHandle, &xfer);
while (1)
{
}
}
/*!
* @brief UART user callback function
*/
void UART_UserCallback(UART_Type *base, uart_handle_t *handle, status_t status, void *userData)
{
if (kStatus_UART_TxIdle == status)
{
/* Send data again */
UART_TransferSendNonBlocking(UART, &g_uartHandle, &xfer);
}
}
```
在上面的代码中,我们使用的是UART3实例。你可以根据你的实际需要修改它。在这个例子中,我们使用了115200波特率、8位数据位、无奇偶校验和1个停止位的UART配置。
在初始化UART之后,我们可以使用UART_TransferSendNonBlocking函数发送数据。在此例中,我们发送了一个字母'a'。如果你需要发送更多的数据,可以使用UART_TransferSendNonBlocking函数发送缓冲区。
UART用户回调函数是可选的。在本例中,我们在回调函数中再次发送数据以实现循环发送。
阅读全文