本文摘要:本文章介绍如何使用NXP官方软件S32KDS中的lpuart(串口)组件
开发平台:S32 Design Studio for ARM Version 2.2
SDK版本:S32_SDK_S32K1xx_RTM_3.0.0
使用芯片:S32K148
组件例程免费下载方式在文末!!!
1. 配置要使用串口的引脚
2. 添加lpuart组件到工程
3. 打开lpuart的配置页面
4. 配置lpuart
5. 配置好参数后点击如下图按钮或选项即可将配置数据更新至代码
6. 在代码中加入UART初始化的代码即可使用UART
// 缓存字节数
#define BUFFER_SIZE 256U
// 缓存区
uint8_t buffer[BUFFER_SIZE];
// 缓存索引
uint8_t bufferIdx = 0;
// lpuart1初始化
void LPUART1_Init(void)
{
LPUART_DRV_Init(INST_LPUART1, &lpuart1_State, &lpuart1_InitConfig0);
LPUART_DRV_InstallTxCallback(INST_LPUART1, txCallback, NULL);
LPUART_DRV_InstallRxCallback(INST_LPUART1, rxCallback, NULL);
// 开启接收 必要的
LPUART_DRV_ReceiveData(INST_LPUART1, &buffer[bufferIdx++], 1U);
}
// 发送回调函数
void txCallback(void *driverState, uart_event_t event, void *userData)
{
(void)driverState;
(void)userData;
// Tx寄存器为空即为发送结束
if (event == UART_EVENT_TX_EMPTY)
{
// user handle
}
}
// 接收回调函数
void rxCallback(void *driverState, uart_event_t event, void *userData)
{
(void)driverState;
(void)userData;
// Rx寄存器满即为接收到数据
if (event == UART_EVENT_RX_FULL)
{
// 防止溢出
if (bufferIdx < BUFFER_SIZE - 1)
{
// 设置Rx接收缓存 必要的
LPUART_DRV_SetRxBuffer(INST_LPUART1, &buffer[bufferIdx++], 1U);
}
}
}
7. 发送串口数据使用以下函数
#define TxBuff "hello\n"
LPUART_DRV_SendData(INST_LPUART1, (uint8_t *)TxBuff, strlen(TxBuff));
8. 备注
组件例程下载地址:
https://download.csdn.net/download/m0_50669075/85030902
S32K148更多例程和源码以及最新内容下载地址:
END