电子产业一站式赋能平台

PCB联盟网

搜索
查看: 186|回复: 0
收起左侧

快来围观:S32K344 VCU项目开发随笔~

[复制链接]

481

主题

481

帖子

2845

积分

三级会员

Rank: 3Rank: 3

积分
2845
发表于 2024-7-26 08:01:00 | 显示全部楼层 |阅读模式
点击上方蓝字关注我们

pmqbamrfbpp64011112146.png

pmqbamrfbpp64011112146.png

一、新建工程

ikkv3yjlfse64011112246.png

ikkv3yjlfse64011112246.png

可参考往期推文:
https://mp.weixin.qq.com/s/W_HxZ89pkW9VvyGt2mYzwA

二、引脚配置

此实例选择串口13进行配置:

ieaknshcuqr64011112346.png

ieaknshcuqr64011112346.png


zkav1fxgowt64011112446.png

zkav1fxgowt64011112446.png



三、外设配置

添加外设:

v2lxis3pvpk64011112546.png

v2lxis3pvpk64011112546.png

配置串口信息1:

vwma3z1ro1164011112646.png

vwma3z1ro1164011112646.png

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

unvya34enl064011112747.png

unvya34enl064011112747.png

中断外设配置:

k40cizr2kow64011112847.png

k40cizr2kow64011112847.png

配置完毕后更新代码。

四、部分代码展示

  • /** * @brief UART_13回调函数 *  * 该函数作为LPUART_13的中断服务程序使用,根据接收到的事件类型执行相应的处理逻辑。 * 主要功能包括处理接收缓冲区满和发送缓冲区空的事件,以及相应的数据传输逻辑。 *  * @param HwInstance 硬件实例标识,此处忽略 * @param Event 事件类型,指示当前中断的原因 * @param UserData 用户数据,此处忽略 */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] != '
    ') && (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;    }}

    五、注意事项

    qmth2bhji5e64011112947.png

    qmth2bhji5e64011112947.png

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

    ioxut5rtkvw64011113047.png

    ioxut5rtkvw64011113047.png

    欢迎转发分享给需要的好友!

    aqvujnfwx3s64011113147.png

    aqvujnfwx3s64011113147.png


    微信号:zls_it

    扫描下方二维码添加充电站小助手微信,可以加入微信交流群

    群内每天分享一些大厂的经典C语言、C++面试题以及知识点解析、技术话题分享、常见错误、易混淆的概念答疑等,等你来Get!!

    a2sxjkqzgak64011113247.png

    a2sxjkqzgak64011113247.png

    0xrj3xdsmkc64011113347.png

    0xrj3xdsmkc64011113347.png

    START

    e3myqntm5vt64011113447.png

    e3myqntm5vt64011113447.png

    su4quf20paw64011113547.png

    su4quf20paw64011113547.png


    4aaamrbdhyg64011113647.png

    4aaamrbdhyg64011113647.png
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表