当前位置: 首页 > news >正文

S32K144 GPIO编程

前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发,下面就使用该工程模板进行GPIO LED的编程试验。

1. 开发环境

  • S32K144EVB-Q100开发板
  • MDK-Keil + Jlink

2. 硬件连接

S32K144EVB-Q100开发板关于LED的原理图如下:

在这里插入图片描述

也就是具体连接关系如下:

LEDPIN
BLUEPTD0
REDPTD15
GREENPTD16

3. GPIO LED实验

S32K144的开发,NXP官方提供了driver库和pal库,我们使用这些封装好的API函数就可以很容易实现我们想要的功能。

但是我为了进一步了解S32K144的芯片特性,计划是想着使用寄存器操作的方式编写代码。

当然,我不会使用那些地址值啊什么的去操作寄存器。前面的文章就介绍过,对于S32K144的SDK,就有提供寄存器操作的封装函数,xxx_hw_access.c/.h 这些文件。

Driver层那些封装函数,就是调用 xxx_hw_access.c/.h 这些文件的寄存器操作函数进一步封装得。我想着不调用 driver 层封装的那些函数了,直接调用寄存器操作的函数进行编写代码。

3.1 编写思路

  • 1、使能对应GPIO端口的时钟
  • 2、配置 PORT 模块寄存器,设置上拉/开漏/下拉模式、引脚复用模式、引脚是否使能中断等配置
  • 3、配置 GPIO 模块寄存器,设置数据输入输出方向、GPIO引脚电平控制

3.2 代码编写

代码编写实现LED闪烁。

1、LED引脚宏定义

/* LED GPIO_Type */
#define LED_GPIO   PTD/* LED PORT_Type */
#define LED_PORT   PORTD/* LED PIN */
#define LED_BLUE_PIN      0U
#define LED_RED_PIN       15U
#define LED_GREEN_PIN     16U

S32K144的GPIO引脚,它涉及两个模块,PORT模块和GPIO模块。

2、LED引脚初始化代码

/* Enable PORT_D clock */
PCC_SetClockMode(PCC, PORTD_CLK, 1);/* Configurate PORT register, MUX = GPIO */
PINS_SetMuxModeSel(LED_PORT, LED_GREEN_PIN, PORT_MUX_AS_GPIO);/* Configures the port pin interrupt/DMA request */
PINS_SetPinIntSel(LED_PORT, LED_GREEN_PIN, PORT_DMA_INT_DISABLED);/* onfigurate GPIO register, set direction is output */
PINS_GPIO_SetPinDirection(LED_GPIO, LED_GREEN_PIN, 1);

首先是使能LED引脚端口PORTD的时钟。然后配置的GPIO复用模式,失能中断和DMA。然后配置输出方向是输出模式。

3、main函数如下:

/* Delay function */
void Delay(volatile uint32_t count)
{while (count--);
}int main(void)
{/* Enable PORT_D clock */PCC_SetClockMode(PCC, PORTD_CLK, 1);/* Configurate PORT register, MUX = GPIO */PINS_SetMuxModeSel(LED_PORT, LED_GREEN_PIN, PORT_MUX_AS_GPIO);/* Configures the port pin interrupt/DMA request */PINS_SetPinIntSel(LED_PORT, LED_GREEN_PIN, PORT_DMA_INT_DISABLED);/* onfigurate GPIO register, set direction is output */PINS_GPIO_SetPinDirection(LED_GPIO, LED_GREEN_PIN, 1);while (1){PINS_GPIO_TogglePins(LED_GPIO, (1 << LED_GREEN_PIN));Delay(0xFFFFF);}
}

编译下载上面的代码之后,就可以看到LED闪烁。

相关文章:

S32K144 GPIO编程

前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发&#xff0c;下面就使用该工程模板进行GPIO LED的编程试验。 1. 开发环境 S32K144EVB-Q100开发板MDK-Keil Jlink 2. 硬件连接 S32K144EVB-Q100开发板关于LED的原理图如下&#xff1a; 也就是具体连接关系如下&#xf…...

域名备案流程(个人备案,腾讯云 / 阿里云)

文章目录 1.网站备案的目的2.备案准备的材料2.1 网站域名2.2 云资源或备案授权码2.3 电子材料 3.首次个人备案准备的材料3.1 主体相关3.2 域名相关3.3 网站相关3.4 网站服务相关3.5 变更相关 4.个人备案流程4.1 登录系统4.2 填写备案信息&#x1f340; 填写备案省份&#x1f34…...

子网ip和子网掩码的关系

子网ip和子网掩码的关系 一个IP地址被分为两部分&#xff1a;网络地址和主机地址。这是通过子网掩码来实现的。 子网掩码&#xff08;Subnet Mask&#xff09;是一个32位的二进制数&#xff0c;它用来区分一个IP地址中的网络地址和主机地址。在子网掩码中&#xff0c;网络地址…...

openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT

文章目录 openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT88.1 前置条件检查88.2 转换88.3 转换示例 openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT …...

网络-Ajax

文章目录 前言一、Ajax优点&#xff1a;缺点&#xff1a; 二、使用步骤XNLHttpRequest对象完整代码 总结 前言 本文主要记录Ajax技术的简介&#xff0c;以及用法。 一、Ajax Ajax是一组用于在Web浏览器和Web服务器之间进行异步通信的Web开发技术。 它代表着Asynchronous Java…...

Autowired和Resource的关系

相同点对于下面的代码来说&#xff0c;如果是Spring容器的话&#xff0c;两个注解的功能基本是等价的&#xff0c;他们都可以将bean注入到对应的field中 不同点但是请注意&#xff0c;这里说的是基本相同&#xff0c;说明还是有一些不同点的&#xff1a; byName和byType匹配顺…...

HashTable, HashMap, ConcurrentHashMap 之间的区别

HashMap: 线程不安全. key 允许为 null。 Hashtable: 线程安全. 使用 synchronized 锁 Hashtable 对象, 效率较低. key 不允许为 null.。只是简单的把关键方法上加上了 synchronized 关键字。如 get 和 set &#xff0c;这相当于直接针对 Hashtable 对象本身加锁&#xff0c;如…...

Maven下载源码出现:Cannot download sources Sources not found for org.springframwork...

Maven下载源码出现&#xff1a;Cannot download sources Sources not found for org.springframwork… 最近重装了IDEA再次查看源码时发现总是报错&#xff0c;网上找了很多&#xff0c;发现解决方法都是在项目终端执行如下命令&#xff1a; mvn dependency:resolve -Dclassi…...

C进阶--字符函数和字符串函数介绍

✨ 更多细节参考 cplusplus.com/reference/cstring/ 使用方式&#xff1a; ⭕ 求字符串长度 &#x1f58c; strlen 函数原型&#xff1a; size_t strlen ( const char * str ); 作用&#xff1a; 获取字符串长度 ✨补充&#xff1a; ⭐字符串以 \0 作为结束标志&…...

算法通关村第五关-二叉树遍历(层数优先)之经典问题:简单的层序遍历、层序遍历分层、自底向上的层序遍历

基础知识&#xff08;青铜挑战&#xff09; 了解二叉树的基础知识 实战训练&#xff08;白银挑战&#xff09; 简单的层序遍历 基本的层序遍历思路很清晰&#xff1a; 给你一个二叉树根节点&#xff0c;你需要创建一个队列 queue 来遍历节点&#xff0c;一个链表 list 来存储…...

C++左右值及引用

1 左值和右值 简单记法&#xff1a;能取地址的是左值&#xff0c;不能取地址的是右值 右值一般是常量 例&#xff1a; i 是右值&#xff0c;因为先把 i 赋值给临时变量&#xff0c;临时变量在1&#xff0c;而临时变量是将亡值&#xff0c;&i取地址会报错 i是左值&#xf…...

如何备份和恢复数据库

目录 1.xtrabackup 是什么2.全量备份3.增量备份4.使用备份进行恢复5.原理6.参考 本文主要介绍如何使用xtrabackup 进行数据库的备份和恢复&#xff0c;并在最后介绍了原理。 1.xtrabackup 是什么 XtraBackup是由Percona开发的一款开源的MySQL数据库备份工具。它可以对InnoDB和…...

简化数据库操作:探索 Gorm 的约定优于配置原则

文章目录 使用 ID 作为主键数据库表名TableName临时指定表名列名时间戳自动填充CreatedAtUpdatedAt时间戳类型Gorm 采用约定优于配置的原则,提供了一些默认的命名规则和行为,简化开发者的操作。 使用 ID 作为主键 默认情况下,GORM 会使用 ID 作为表的主键: type User st…...

保姆级Anaconda安装教程

一.anaconda下载 建议使用清华大学开源软件镜像站进行下载&#xff0c;使用官网下载速度比较慢。 anaconda清华大学开源软件镜像站 &#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 一路next即可&#xff0c;注意添加环境变量得选项都勾上。 二.验证…...

你写过的最蠢的代码是?——后端篇

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…...

快速幂

876. 快速幂求逆元 - AcWing题库 AC代码&#xff1a; #include <iostream> #include <cstring> #include <algorithm>using namespace std;typedef long long ll;int n;int qmi(int a,int k,int p) {int res1;while(k){if(k&1)res(ll)res*a%p;k>&…...

【题解 动态规划】 Colored Rectangles

题目描述&#xff1a; 分析&#xff1a; 乍一看我还以为是贪心&#xff01; 猫 想想感觉没问题 但是局部最优并不能保证全局最优 比如这组数据 19 19 19 19 20 20 20 20如果按照贪心的做法&#xff0c;答案是20*20*2 但是其实答案是19*20*4 因此这道题用贪心是不对的 于是我…...

VsCode好用的扩展插件

开发插件推荐: 别名路径跳转 >> 点击引用的变量名&#xff0c;ctrl 点击 跳转文件Auto Rename Tag >> 修改标签前缀&#xff0c;后缀标签会同时修改Chinees 中文(简体)Code Runner >> 纯js文件右键点击run code即可底部终端打印file-icons-mac >> ma…...

Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)

一、命令行提示符格式内容因shell类型而异 Linux终端命令行提示符内容格式则因shell的类型而异&#xff0c;例如CoreLinux默认的shell是sh&#xff0c;其命令行提示符为黑底白字&#xff0c;内容为&#xff1a; tcbox:/$ 其中&#xff0c;tc为当前用户名&#xff0c;box为主机…...

vue-引入使用main.js全局常量

common.js 命名什么都可以&#xff0c;用来定义常量的 定义了之后使用export让此暴露出去 const QRaddress http://localhost:9875export{QRaddress, } main.js //引入刚刚的js import {QRaddress} from /config/common.js挂载 Vue.prototype.$QRaddress QRaddress使用 …...

【C语言】【动态内存管理】malloc,free,calloc,realloc

1.malloc函数 void* malloc(size_t size)功能&#xff1a;向内存申请字节为 size大小的空间 使用时要包含头文件&#xff1a;<stdlib.h> 开辟成功&#xff1a;返回开辟好的空间初始地址的指针 开辟失败&#xff1a;返回空指针 NULL 使用举例&#xff1a; (malloc和free…...

Linux性能优化--性能工具-系统CPU

2.0.概述 本章概述了系统级的Linux性能工具。这些工具是你追踪性能问题时的第一道防线。它们能展示整个系统的性能情况和哪些部分表现不好。 1.理解系统级性能的基本指标&#xff0c;包括CPU的使用情况。 2.明白哪些工具可以检索这些系统级性能指标。 2.1CPU性能统计信息 为…...

Ipython和Jupyter Notebook介绍

Ipython和Jupyter Notebook介绍 Python、IPython和Jupyter Notebook是三个不同但密切相关的工具。简而言之&#xff0c;Python是编程语言本身&#xff0c;IPython是对Python的增强版本&#xff0c;而Jupyter Notebook是一种在Web上进行交互式计算的环境&#xff0c;使用IPytho…...

数列极差(c++题解)

题目描述 佳佳的老师在黑板上写了一个由 n个正整数组成的数列&#xff0c;要求佳佳进行如下操作&#xff1a;每次擦去其中的两个数a 和b &#xff0c;然后在数列中加入一个数a*b1 &#xff0c;如此下去直至黑板上剩下一个数为止&#xff0c;在所有按这种操作方式最后得到的数…...

面试题:熟悉设计模式吗?谈谈简单工厂模式和策略模式的区别

刚刚接触设计模式的时候&#xff0c;我相信单例模式和工厂模式应该是用的最多的&#xff0c;毕竟很多的底层代码几乎都用了这些模式。自从接触了一次阿里的公众号发的一次文章关于 DDD的使用 以后&#xff0c;就逐渐接触了策略模式。现在在项目中运用最多的也是这几种设计模式了…...

Windows + Git + TortoiseGit + Github

一、下载Git&#xff08;Git For Windows&#xff09; 1.1. Git下载地址&#xff1a;https://gitforwindows.org/ 1.2. 默认安装即可&#xff08;包名&#xff1a;Git-2.42.0.2-64-bit.exe&#xff09; 二、下载TortoiseGit 2.1.TortoiseGit下载地址&#xff1a;http://tortoi…...

MySQL数据库索引练习

1.学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept) 学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键 课程表&#xff1a;Course (Cno, Cname,) 课程号&#xff0c;课程名 Cno为主键 学生选课表&#xff1a;SC (Sno, Cno, Scor…...

mysql面试题10:MySQL中有哪几种锁?表级锁、行级锁、页面锁区别和联系?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Mysql中有哪几种锁? 在MySQL中,主要有以下几种类型的锁: 共享锁(Shared Lock):也称为读锁。多个事务可以同时持有共享锁,可以读取但不能修…...

ctfshow—1024系列练习

1024 柏拉图 有点像rce远程执行&#xff0c;有四个按钮&#xff0c;分别对应四份php文件&#xff0c;开始搞一下。一开始&#xff0c;先要试探出 文件上传到哪里&#xff1f; 怎么读取上传的文件&#xff1f; 第一步&#xff1a;试探上传文件位置 直接用burp抓包&#xff0c;…...

javaWeb学生信息管理

一、引言 学生信息管理系统是基于Java Web技术开发的一个全栈应用&#xff0c;用于管理学生的基本信息。本系统采用Eclipse作为开发工具&#xff0c;Navicat用于MySQL数据库管理&#xff0c;运行在JDK1.8、Tomcat9.0、MySQL8.0环境下。前端采用JavaScript、jQuery、Bootstrap4…...

wordpress 访问统计/排名优化网站seo排名

浮点型在内存中的存储分布方式因机器平台而异&#xff0c;完全理解所有机器平台中的浮点型存储无疑是一件相当麻烦的事。幸运的是&#xff0c;大多机器平台都遵守 IEEE-754 标准&#xff0c;很可能读者和我使用的平台正是使用的 IEEE-754 标准。计算机是如何存储浮点数的呢&…...

花都网站开发公司/品牌公关

项目介绍 以智能水务项目管理的实际应用需要出发&#xff0c;架构系统来改善现智能水务项目管理工作流程繁琐等问题。不仅如此以操作者的角度来说&#xff0c;该系统的架构能够对智能水务进行有效的管理。 本系统是利用ssmt框架而设计的一款结合用户的实际情况而设计的平台&am…...

商丘做网站汉狮网络/武汉久都seo

Description 某工厂发现厂里的机器在生产产品时要消耗大量的原材料&#xff0c;也就是说&#xff0c;有大量的原材料变成了废物。因此厂里想找出消耗原材料最大的一条生产线路进行改造&#xff0c;以降低成本。厂里的生产线路是一个有向无环网络&#xff0c;有N台机器分别代表…...

做海南旅游网站的初衷/线下推广活动策划方案

1背景转眼已经过了33岁生日。作为一个大龄程序媛&#xff0c;昨天又收到了阿里技术直接打过来的面试电话&#xff0c;照例客气的回答不考虑机会之后&#xff0c;算算今年下来阿里技术直接打过来的面试至少也有十几次了。每次都问你是多久不考虑机会呢&#xff1f;我回答几年吧。…...

企业免费网站建设哪个品牌好/站长统计性宝app

在VMWare主页中选取新建虚拟机选项卡 2.在新建虚拟机向导中设置安装来源取决于安装方式.如果是通过光盘安装,则选择第一项.这里我使用ISO映像安装,输入用户名密码和密钥一路下一步就可以安装成功.3.安装成功如下图4.下面开始安装VMWare Tools工具点击 VMWare客户端的 虚拟机…...

php网站开发说明文档/爱链网中可以进行链接买卖

8个动态数码管时钟显示#include#define uint unsigned int#define uchar unsigned charuchar i,temp,aa,miao,fen,shi,play0;/************************************************定义3个键&#xff0c;K1用于调节分&#xff0c;K2用于调节时&#xff0c;K3用于调节时**********…...