【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 收发结构

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第1张图片

LPUART 发送器框图

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第2张图片

LPUART 接收器框图

三、基于 S32DS 创建 UART 例程

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

1. 配置组件模块

首先新建一个 S32K311 工程。

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第3张图片

选择 SDK 后点击 Finish。

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第4张图片

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第5张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第6张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第7张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第8张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第9张图片

配置 Lpuart_Uart 组件。

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第10张图片

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 定义)。

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第11张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第12张图片

2. 例程思路

添加头文件与参数定义。

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第13张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第14张图片

使用轮询方式发送字节。

图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第15张图片

3. 例程烧录

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第16张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第17张图片

4. Debug 效果

Debug Configure 处运行

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第18张图片

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

【NXP S32K311】基于 S32DS 从零开始创建 LPUART 例程_第19张图片

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

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

你可能感兴趣的:(单片机,嵌入式硬件,stm32,大大通,芯片烧录)