关键函数:

  • DL_GPIO_readPins(GPIO_Regs* gpio, uint32_t pins):同时读一组端口
  • DL_GPIO_writePins(GPIO_Regs* gpio, uint32_t pins):同时写一组端口
  • DL_GPIO_setPins(GPIO_Regs* gpio, uint32_t pins):对指定某组端口的某管脚置高
  • DL_GPIO_clearPins(GPIO_Regs* gpio, uint32_t pins):对指定某组端口的某管脚置低
  • DL_GPIO_togglePins(GPIO_Regs* gpio, uint32_t pins):对指定某组端口的某管脚翻转

G3507多达 60个 GPIO,分成两组PA和PB,在LP-MSPM0G3507学习--02建立新工程已经初步学习了GPIO的输出功能,学习了如何配置GPPIO管脚控制LED灯闪烁,下面实现GPIO输入功能,lanchpan有两个按键:

 有2个led:

 现在实现按键S2按下时,led1翻转

从原理图中可以看出led灯设定为PA0,输出,初始值为高(led熄灭);

对于button设为PB21,输入,当按键按下时为低电平,释放时为高电平,所以内部连接上拉电阻。

在工程文件中的compiler include中的ti\mspm0_sdk_2_05_01_00\source\ti\driverlib\mop中有一系列的文件,其中dl_gpio.h是关于GPIO的HAL函数操作的头文件,其中读一个管脚的函数为 DL_GPIO_readPins(GPIO_Regs* gpio, uint32_t pins),写为DL_GPIO_writePins(GPIO_Regs* gpio, uint32_t pins)

#include "ti_msp_dl_config.h"int main(void)
{SYSCFG_DL_init();while (1) {#if 1if (0==DL_GPIO_readPins(Buttons_PORT,Buttons_Button_PIN)) {//有按键按下delay_cycles(320000);//等待10ms,消抖if (0==DL_GPIO_readPins(Buttons_PORT,Buttons_Button_PIN)) {//再次检测DL_GPIO_togglePins(LED_PORT,LED_LED1_PIN);}while(0==DL_GPIO_readPins(Buttons_PORT,Buttons_Button_PIN));//等待按键释放}#elseDL_GPIO_togglePins(LED_PORT,LED_LED1_PIN);delay_cycles(32000000);#endif}
}

可以看出,主循环效率不高,可以采用中断的方式来实现

---------------------------------------------------------------------------------------------------------------------------------

创作不易,请各位打赏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89837.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89837.shtml
英文地址,请注明出处:http://en.pswp.cn/web/89837.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVS(Linux virtual server)-实现四层负载均衡

一、简介LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基 于LVSkeepalived实现LVS 官网: http://www.linuxvirtualserver.org/二、LVS运行原理2.1LVS 的集群结构2.2lvs相关概念RS&am…

Kubernetes CNI网络插件性能瓶颈排查与优化实践

Kubernetes CNI网络插件性能瓶颈排查与优化实践 CNI(Container Network Interface)是 Kubernetes 网络层的核心组件,不同 CNI 插件实现了容器间网络通信、多租户隔离、流量限速等功能。然而在大规模集群或高并发业务场景下,CNI 插…

20250720-6-Kubernetes 调度-nodeName字段,DaemonS_笔记

一、污点与容忍1. 给节点添加污点1)命令格式基本语法:kubectl taint node [node] keyvalue:[effect]示例:kubectl taint node k8s-node1 gpuyes:NoSchedule操作说明:与打标签命令类似,将"…

微软开源项目 Detours 详细介绍与使用实例分享

目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C++软件异常排查从入门到精通系列教程…

研发知识系统选型实战:从 Notion 到 Gitee Wiki 的迭代经验

关键词:知识管理、版本控制、协作编辑、国产平台、研发效能 在日常研发管理中,知识管理平台往往被视为“非核心工具”,但它的好坏直接影响着团队交接效率、文档可用性以及协作深度。过去几年,我们团队先后使用过 Notion、Confluen…

从一开始的网络攻防(三):sqlmap快速上手

一、确定目标 使用sqlmap的第一步是确定探测的目标,一般有四种: 数据库URL文件Google批量扫 环境 Target IP: 192.168.8.133 Port: 13306(Mysql)、8088(sqli_labs) mysql: docker pull的最新mysql sqlmap github:https://g…

《Anaconda 精简路径治理》系列 · 番外篇Conda 虚拟环境路径结构方案全解——六种路径布局对比、优劣与治理建议

Python 多版本环境治理理念驱动的系统架构设计:三维治理、四级隔离、五项自治 原则-CSDN博客 Anaconda 路径精简后暴露 python 及工具到环境变量的配置记录-CSDN博客 【终极实战】Conda/Poetry/Virtualenv/Pipenv/Hatch 多工具协同 AnacondaPyCharm:构建…

容器基础知识3-kubectl、kubeadm 和 kubelet,kube-proxy

kubectl、kubeadm 和 kubelet,kube-proxy的概念和关系一、kubeadm:K8s 集群的 “搭建工程师”核心定位如果把 K8s 集群比作一栋大楼,kubeadm 就是负责 “打地基、搭框架” 的工程师,专门用来快速搭建 K8s 集群的工具。具体工作内容…

langchain调用本地ollama语言模型和嵌入模型

参考:ollama兼容OpenAIEmbeddings的解决思路 解决代码: 访问embedding模型代码 # 测试以下两个引用都可以 from langchain_openai import OpenAIEmbeddings #from langchain_community.embeddings import OpenAIEmbeddings from typing import List,…

gitlab私有化部署

以下是整理好的Markdown格式文档,详细描述了从下载镜像、启动镜像、修改external_url以及设置或重置root密码的步骤。 GitLab 安装与配置指南 本文档将指导您完成GitLab的安装和基本配置过程,包括下载镜像、启动容器、修改外部访问URL(external_url)及设…

CCLink IE转ModbusTCP网关配置无纸记录器(上篇)

本研究案例采用CCLink IE转ModbusTCP网关技术,实现了将记录仪数据传输至三菱PLCPLC的过程。具体操作步骤如下所述。在确保无纸记录仪与PT100传感器传感器的连接无误后,应将无纸记录仪与个人计算机(PC)通过以太网线进行连接&#x…

近期工作感想:职业规划篇

最近整理博客时,撞见意外的惊喜——17年刚毕业那会儿写的职业规划,静静躺在回收站里。 重读那些碎碎念,忍不住想笑:那时候的焦虑太真切了,哪敢想后来会遇到这么多大佬,推着我往前一直阴暗爬行😂…

Matlab自学笔记六十四:求解自变量带有约束条件的方程

1.说明 有一些方程由于实际问题的需要,需要设置一些限制约束条件,例如x>0等,若使用Matlab编程求解,首先尝试使用符号运算求解(符号运算可参考文章54:Matlab自学笔记五十四:符号数学工具箱和…

Flutter状态管理篇之ChangeNotifier(二)

目录 前言 一、ChangeNotifier定义 1.ChangeNotifier定义 2.Listenable的定义 二、继承体系 三、核心方法解析 1.类结构与属性分析 1.Listenable的定义 2..核心字段 1.属性解析 1._count 2._listeners 3.为什么不用const [] 4._notificationCallStackDep…

大带宽服务器对于高流量网站的作用

随着科学技术的快速发展,越来越多的网站面临着高流量的访问需求,在同一时间中会有着大量的用户进行访问,同时也提高了该企业的知名度,但是这对于服务器的性能需求也在逐渐增高,而大带宽服务器卓越的性能和稳定的传输能…

2025年算法备案发号规律总结与下半年发号预测

上半年发号规律总结图太糊?可看下方表格(左划看全表)👇今年批次算法备案总批次发布时间所发当批算法材料提交时间段审核周期25年第一批第十批2025/3/122025年1月(春节前)约2个月25年第二批第十一批2025/5/1…

高光谱相机(Hyperspectral Camera)

高光谱相机(Hyperspectral Camera)高光谱相机:是一种可以采集连续、多达上百个窄波段的光谱信息的成像设备。它的核心特征是:每个像素点都拥有一个完整的光谱曲线,类似于“像素级别的光谱仪”。举例:普通彩…

经典排序算法之归并排序(Merge Sort)

归并算法定义:所谓归并排序是指将两个或两个以上有序的数列(或有序表),合并成一个仍然有序的数列(或有序表)。这样的排序方法经常用于多个有序的数据文件归并成一个有序的数据文件。归并排序相比较之前的排…

Linux系统环境下 Node.js 20 安装实践:glibc 2.17 兼容方案与工具链优化

前言:在 CentOS 7.9 的生产环境中,默认搭载的 glibc 2.17 是系统的核心依赖,直接升级它可能引发稳定性风险。而 Node.js 20 作为较新的运行时,其与 glibc 的兼容性长期困扰着开发者:为什么有些场景下 Node.js 20 能直接…

构建一个简单的Java框架来测量并发执行任务的时间

文章目录一、完整代码二、代码解释1、方法签名2、初始化CountDownLatch3、提交任务到执行器4、任务线程的逻辑5、主线程的逻辑详细解释总结以下代码实现了一个简单的框架,用于测量并发执行任务的时间。它使用了Executor来执行任务,并通过CountDownLatch来…