【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

相关文章

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

java创建xls文件放到指定文件夹中实现方式

《java创建xls文件放到指定文件夹中实现方式》本文介绍了如何在Java中使用ApachePOI库创建和操作Excel文件,重点是如何创建一个XLS文件并将其放置到指定文件夹中... 目录Java创建XLS文件并放到指定文件夹中步骤一:引入依赖步骤二:创建XLS文件总结Java创建XLS文件并放到指定文件

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

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 多行数据