【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程

2024-01-30 12:52

本文主要是介绍【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概述

本文将会介绍 S32K311 LPUART 模块,并结合实际操作帮助新手快速基于 S32 Design Studio 创建 S32K311 LPUART 例程。文中开发平台为 S32 Design Studio for S32 Platform 3.5,软件版本为 SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_DS_updatesite,开发板为 T23-011 Boom_V1.0(NXP S32K311 EVM)。

二、S32K311 LPUART 模块介绍

S32K311 共有四路 LPUART 通道。LPUART由波特率发生器、发送器和接收器组成,支持NRZ (non- returnto -zero)编码格式、兼容 IrDA 的低速串行红外 (SIR) 协议、LIN 主从操作。

LPUART 具备以下特点:

  • 支持全双工、异步、标准 NRZ 格式串行通信

  • 可编程波特率(13 位模分频器),具有 4 倍至 32 倍的可配置过采样比(OSR)

  • 发送和接收波特率相对于总线时钟的异步操作

  • 支持中断、DMA 和轮询操作

  • 硬件奇偶校验生成和校验

  • 可编程 7 位,8 位,9 位或 10 位字符长度

  • 可编程 1 位或 2 位停止位

  • 支持闲置线唤醒、地址标记唤醒、接收数据匹配三种接收器唤醒方法

  • 硬件流控制支持 RTS(request to send)和 CTS(clear to send)信号

  • 独立的 FIFO 收发结构

图片

LPUART 发送器框图

图片

LPUART 接收器框图

三、基于 S32DS 创建 UART 例程

下面基于 S32 Design Studio for S32 Platform 3.5 开发环境创建 S32K311 的 LPUART 例程(RTD 版本:4.0.0)。

1. 配置组件模块

首先新建一个 S32K311 工程。

图片

选择 SDK 后点击 Finish。

图片

图片

双击 mex 开始配置组件模块。

图片

配置引脚前先确定芯片封装。

图片

配置所需的引脚信号,已配置的引脚会在路由详情处显示。

图片

 添加组件实例:Siul2_Port、Siul2_Dio、Lpuart_Uart、InCtrl_Ip。

图片

配置 Lpuart_Uart 组件。

图片

UartChannel 旁的 “+” 用来添加串口通道。

Uart hardware channel 选择串口硬件通道(LPUART_0 – LPUART_3)。

Desire Banudrate 设置该串口通道的波特率。

Uart Asynchronous Method 选择异步模式(中断 / DMA)。

Uart Parity Type 选择校验类型(无校验/奇校验/偶校验)。

Uart Stop Bit Number 设置停止位(1 位/ 2 位)。

Uart Word Length 设置字长(7-10 位)。

Uart Internal Loopback Mode Enable 当前通道启用内部环回模式。

配置 InCtrl_Ip 组件。添加串口中断,并补充中断处理函数(函数名由 RTD/include/Lpuart_Uart_Ip_Irq.h 定义)。

图片

配置完毕点击更新源代码。

图片

2. 例程思路

添加头文件与参数定义。

图片

进行时钟、引脚、中断和串口的初始化配置。本例程仅使用 UART1 通信。

图片

使用轮询方式发送字节。

图片

使用非阻塞方式接收字节,并打印出来。

图片

3. 例程烧录

硬件连接:准备 12 V 适配器供电,USB 线连接电脑,以及 PEmicro 烧录器。

图片

串口助手:确认端口、数据位、校验位和停止位。

图片

4. Debug 效果

Debug Configure 处运行

图片

串口助手显示 WELCOME_MSG_1。发送任意字节,串口可打印其接收的数据。

图片

注意:S32K311 UART1 使用的时钟源为 AIPS_PLAT_CLK (60MHz),若使用 RTD 3.0.0 版本则需手动修改 UART1 的波特时钟除数和过采样率参数。RTD 4.0.0 版本已更新其时钟配置。

登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑!

这篇关于【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/660301

相关文章

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项