本文主要是介绍【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 例程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!