• 正文
    • 一、新建工程
    • 二、引脚配置
    • 三、外设配置
    • 四、部分代码展示
    • 五、注意事项
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

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

2024/07/30
2475
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、新建工程

可参考往期推文:S32K344 VCU实战项目之带你入门篇

二、引脚配置

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

三、外设配置

添加外设:

配置串口信息1:

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

中断外设配置:

配置完毕后更新代码。

四、部分代码展示

/** * @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] != '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;    }}

五、注意事项

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

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

微信号:zls_it

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
74HC165D,653 1 Nexperia 74HC165; 74HCT165 - 8-bit parallel-in/serial out shift register@en-us SOP 16-Pin

ECAD模型

下载ECAD模型
$0.46 查看
SN74LVC1G32DBVR 1 Rochester Electronics LLC LVC/LCX/Z SERIES, 2-INPUT OR GATE, PDSO5, GREEN, PLASTIC, SOT-23, 5 PIN
$0.27 查看
DSC1123CI5-125.0000 1 Microchip Technology Inc CRYSTAL OSCILLATOR, CLOCK, 125MHz, LVDS OUTPUT
$4.68 查看

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

微信公众号《朱老师IT充电站》主笔。先后从事电子工程师、单片机软件工程师、嵌入式linux软件工程师、物联网软件工程师、架构师等工作,教育品牌<朱老师物联网大讲堂>创始人,畅销书作者。擅长U-Boot、linux kernel等嵌入式底层和系统层开发、架构设计。擅长汇编、C/C++、Java、C#等常用开发语言。被授予:IBM技术专家、华为云享专家、51CTO学院金牌讲师等称号。