LP-MSPM0G3507學習--04GPIO控制

關鍵函數:

  • 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來…