S32K344对应UART发送与接收

目录

一、新建工程

二、引脚配置

三、外设配置

1、添加外设

2、配置串口信息1

3、配置串口信息2(回调函数)

4、中断外设配置

四、代码编写

五、注意事项


一、新建工程

如需获取详情,可进主页,+qun,自行获取~

二、引脚配置

三、外设配置

配置完毕后更新代码

1、添加外设

2、配置串口信息1

3、配置串口信息2(回调函数)

4、中断外设配置

四、代码编写

void UART_13_Callback(const uint8 HwInstance, const Lpuart_Uart_Ip_EventType Event, void *UserData)
{
    (void)HwInstance; // 避免未使用参数编译警告
    (void)UserData; // 避免未使用参数编译警告

    switch(Event)
    {
        case LPUART_UART_IP_EVENT_RX_FULL: // 接收缓冲区满事件
        {
            // 检查是否收到换行符或接收缓冲区即将溢出
            if ((rxBuffer[rxBufferIdx] != '\n') && (rxBufferIdx != (BUFFER_SIZE - 2U)))
            {
                // 继续接收下一个字符
                rxBufferIdx++;
                Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U);
            }
            else
            {
                // 将接收缓冲区的数据复制到发送缓冲区,并初始化接收缓冲区
                memcpy(txBuffer,rxBuffer,rxBufferIdx+1);
                Lpuart_Uart_Ip_AsyncSend(LPUART_UART_IP_INSTANCE_USING_13,txBuffer,1);
                txBufferIdx++;
                memset(rxBuffer,0,rxBufferIdx+1);
                test = rxBufferIdx + 1;
                rxBufferIdx = 0;
                Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U);
            };
        }break;
        case LPUART_UART_IP_EVENT_TX_EMPTY: // 发送缓冲区空事件
        {
            // 检查是否所有数据都已发送
            if(txBufferIdx > test - 1)
            {
                // 重置发送缓冲区索引
                txBufferIdx = 0;
            }
            else
            {
                // 继续发送下一个字符
                Lpuart_Uart_Ip_SetTxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&txBuffer[txBufferIdx++],1U);
            }
        }break;
        case LPUART_UART_IP_EVENT_END_TRANSFER: // 传输结束事件
        {
            // 此处可添加传输结束后的处理逻辑
        }break;
        case LPUART_UART_IP_EVENT_ERROR: // 错误事件
        {
            // 此处可添加错误处理逻辑
        }break;
        default:
        {
            // 处理未知事件
        }break;
    }
}

五、注意事项

此处注意前文提到的一个回调的配置,应调用此处的回调函数

如有侵权,联系删除。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
S32K144UART是一种常见的串行通信接口,它支持中断接收功能。在使用S32K144UART中断接收时,需要进行以下步骤: 1. 初始化UART:首先,需要对S32K144UART进行初始化,包括设置波特率、数据位、停止位、校验位等参数。可以使用相关的寄存器来配置UART的控制寄存器和状态寄存器。 2. 使能中断:在初始化完UART后,需要使能中断功能。通过设置相关的中断使能寄存器,可以选择开启接收中断。 3. 编写中断服务程序:接下来,需要编写中断服务程序来处理接收中断。当UART接收到数据时,会触发接收中断,此时中断服务程序会被执行。在中断服务程序中,可以通过相关的寄存器来获取接收到的数据,并进行后续的处理操作。 4. 清除中断标志:在中断服务程序中,需要及时清除接收中断的标志位,以便下一次接收中断正确触发。可以通过相关的寄存器来清除接收中断的标志位。 5. 中断优先级设置:如果系统中存在多个中断,需要设置不同中断的优先级,以确保高优先级中断能够及时响应。可以通过设置相关的中断优先级寄存器来进行设置。 总结:使用S32K144UART中断接收,需要先进行UART的初始化配置,然后使能中断功能,并编写中断服务程序来处理接收中断。同时,需要注意清除中断标志位和设置中断优先级,以确保中断的正确触发和响应。这样,就可以实现S32K144UART的中断接收功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值