【TI MSPM0】GPIO学习

 一、文件样例查找

以GPIO软件轮询为例


 下面的四个文件夹分别为不同开发环境提供支持

二、工程导入 

 1.点击file-点击import project

2.点击browse

 3.找到对应的文件打开,选择

推荐使用ticlang,能够提供更加优化的效率 点击finish

三、工程学习

1.readme 文件 (与HTML文档内容一样,格式不同)

Example Summary工程实例的简单说明

根据在软件轮询当中读取到的数字输入 来进行 GPIO的输出


Peripherals& Pin Assignments

使用到的外设和引脚情况 

使用到了PA0和PB21的引脚

 

SYSCTL、EVENT、DEBUGSS是系统基本外设,每个工程都会有


 BoosterPacks, Board Resources & Jumper Settings

扩展板、板资源和跳线设置 主要是对跳线的说明 不需要太过关注


Device Migration Recommendations  设备迁移推荐

本工程是基于3507设计的,如果需要迁移,可以参考手册


Low-Power Recommendations低功耗推荐设置


Example Usage 样例使用

编译,加载运行样例,按下button,观察led1翻转

因此,从上面看来,最重要的是Example Summary说明样例的用处和Example Usage告诉我们怎么去使用 

 2.syscfg  图形化配置工具

通过这个界面,就可以进行图形化的配置,从而生成工程 

3. .c文件 是main函数

 4.4个文件夹的主要内容

  • 1-sysconfig生成的代码
  • 2-相关文件
  • 3-debug 编译后生成的文件
  • 4-targetconfigs 

5.编译运行

点击project-build all(Ctrl+B)

 6.烧录到开发板

点击run-project 等待下载

当以后添加了多个工程时,可以直接在这里选择

7.运行程序

点击continue运行程序, 点击stop 退出程序 

8.字体大小更改 

 file-preference -general settings

四、代码讲解

1.头文件

#include "ti_msp_dl_config.h"

ti_msp_  ti msp 系列

dl_config.h 代表driverlib库,在下面的文件夹中生成

2.初始化

调用了driverlib库的初始化

SYSCFG_DL_init();

按住Ctrl ,再点击 该行代码,进入对应的函数中去

可以在.c文件中找到对应的函数

可以看到,首先初始化电源,然后是GPIO的初始化 还有sysctl 可以帮助初始化各个模块

3.while(1)循环

  • 宏定义 定义了GPIOB和GPIO PIN21由此可以看出if判断就是去读GPIO PB21上面的电平,看它的高低电平,最终返回0或1 如果是0就set pins ,如果是1 就clear pins
  • 引脚配置通过宏定义可以看出,引脚配置是通过配置工具生成的,下面的注释也说明了,不要直接进行头文件的修改,是通过配置工具生成的
    /**  ============ ti_msp_dl_config.h =============*  Configured MSPM0 DriverLib module declarations**  DO NOT EDIT - This file is generated for the MSPM0G350X*  by the SysConfig tool.*/

 五、sysconfig工具

1.最顶上是工程生成                                                  

     

  • 选择编译器为TIClang  
  • 包含的库中勾选了 DriverLib 其他的没有用到就没有勾选,优化代码的体积

2. board

需要用到swd协议进行下载和调试 

 3.GPIO 

上面的两个相当于两个组,在组内是可以有多个PIN的 

可以给不同的模块分到不同的组里面,这样就会更加简洁

  •  Name名称的设置会影响.h的输出
  • Port是组的port,不是引脚的如果选择PortA或PortB的话,就意味着只能从A或B里面设置对应引脚 选择Any 就可以选择任意引脚
  • 组里的pin 设置Name名称、选择Direction输入或输出、Initial Value初始值(set或clear代表高或低)、IO Structure引脚结构(标准,支持唤醒,高速,高的驱动能力,耐压5v的开漏输出 没有要求可以选择any)
  • 组里的pin Assigned Port 分组 根据对应的组别选择,Assigned Port Segment(一个组里有32个PIN,0-15属于lower,16-31属于upper,默认是any,一般不需要手动去改,当输入确定引脚时,会自动选择对应的组别)
  • Digital IOMUX Features Internal Resistor(pull-up上拉 pull-down下拉)

六、新建空白工程

1.导入空白工程模版

 按照上面的方法,找到空白工程并导入

2.空白工程简介

使用Driverlib库,展示了基本的空白工程只有主函数文件和它的初始化 

3.配置引脚

 

4.提示信息

代表还处在调试状态,是否重新加载

5.函数查找 

 进入网页:MSPM0G1X0X_G3X0X Driver Library

 在搜索栏里查找想要学习的函数

  • 返回值是32位 无符号整型
  • 参数有两个,一个是GPIO 端口,一个是引脚
  • 功能是读取一组GPIO端口
  • 读取的参数,第一个指向外设,就是端口,第二个引脚,如果有多个引脚时,用或|连接


验证 DL_GPIO_readPins()函数

将函数读取到的值赋值给val,对其返回值进行研究 

#include "ti_msp_dl_config.h"
#include <cstdint>uint32_t val;
int main(void)
{SYSCFG_DL_init();while (1) {val=DL_GPIO_readPins(GPIO_BUTTON_PORT,GPIO_BUTTON_PIN_BUTTON_S2_PIN)if(!val){DL_GPIO_setPins(GPIO_LED_PORT,GPIO_LED_PIN_LED_1_PIN);}else{DL_GPIO_clearPins(GPIO_LED_PORT,GPIO_LED_PIN_LED_1_PIN);}}
}

在watch一栏新添加 点击+即可

 由此看出PB21引脚是高电平,就在第21位上返回1

如果还同时读取PB20 如果PB20是高的话,就在第20位上返回1

可以更改watch的值的进制形式 

        

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

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

相关文章

二叉树的基本操作与实现:C语言深度剖析

目录 代码整体框架 1. #define _CRT_SECURE_NO_WARNINGS 2. 头文件引入 3. typedef int BTtype; 4. 二叉树节点结构体定义 二叉树的创建 1. BuyNode 函数 2. CreatNode 函数 二叉树的遍历 前序遍历 中序遍历 后序遍历 二叉树属性的计算 节点个…

深入解析 Latent Diffusion Model(潜在扩散模型,LDMs)(代码实现)

深入解析 Latent Diffusion Model&#xff1a;从传统 Diffusion Model 到高效图像生成的进化 近年来&#xff0c;生成模型在图像合成领域取得了显著进展&#xff0c;其中 Diffusion Model&#xff08;扩散模型&#xff0c;DMs&#xff09;以其出色的生成质量和理论上的稳健性逐…

线性回归原理推导与应用(五):波士顿房价预测实战

波士顿房价是一个非常经典的多元线性回归入门案例数据集。波士顿房价预测数据集包含了可能会影响房价的十三个因素&#xff0c;并给出了实际的房价&#xff08;单位为万美元&#xff09; 波士顿房价数据集数据集下载地址&#xff1a;https://www.kaggle.com/datasets/altavish…

基于CATIA二次开发的低音炮腔体容积精准计算技术详解

一、功能概述 本工具通过PySide6与CATIA V5深度集成&#xff0c;实现了低音炮上下腔体内体积的自动化测量系统。系统采用三维实体建模法进行容积计算&#xff0c;相较于传统手工计算方式&#xff0c;精度提升可达0.5%。主要功能模块包括&#xff1a; 壳体特征自动识别动态草图…

向量数据库原理及选型

向量数据库 什么是向量什么是向量数据库原理应用场景 向量数据库的选型主流向量数据库介绍向量数据库对比主流向量数据库对比表 选型建议 什么是向量 向量是一组有序的数值&#xff0c;表示在多维空间中的位置或方向。向量通常用一个列或行的数字集合来表示&#xff0c;这些数…

IE代理切换器v1.2免费版

虽然IE浏览器已经过时了&#xff0c;但很多其他浏览器&#xff0c;比如谷歌浏览器的代理服务器设置&#xff0c;都还是基于IE浏览器来进行设置的&#xff0c;如果你的工作场景需要切换不同的代理服务器来访问网络&#xff0c;那这款工具适合你&#xff0c;目前该工具可以实现IE…

模运算的艺术:从基础到高阶的算法竞赛应用

在算法竞赛中&#xff0c;模运算&#xff08;取模运算&#xff09;是一个非常重要的概念&#xff0c;尤其在处理大数、防止溢出、以及解决与周期性相关的问题时。C 中的模运算使用 % 运算符&#xff0c;但它的行为和使用场景需要特别注意。 1. 模运算的基本概念 模运算是指求一…

SpringBoot前后端不分离,前端如何解析后端返回html所携带的参数

有一个SpringBoot实现的前后端不分离项目&#xff0c;当前端跳转某个界面时&#xff0c;比如下面的菜单树按钮&#xff0c;后端在返回页面menuTree.html时&#xff0c;还携带了一个参数角色roleId&#xff0c;以便打开菜单树&#xff0c;还要根据这个角色查询对应的分配授权的菜…

操作系统八股文整理(一)

操作系统八股文整理 一、进程和线程的区别二、进程与线程的切换过程一、进程切换进程切换的步骤&#xff1a; 二、线程切换线程切换的步骤&#xff1a; 三、进程切换与线程切换的对比四、上下文切换的优化 三、系统调用一、系统调用的触发二、从用户空间切换到内核空间三、执行…

卷积神经网络(CNN)之 EfficientNet

在深度学习领域&#xff0c;模型的计算效率与性能之间的平衡一直是一个核心挑战。随着卷积神经网络&#xff08;CNN&#xff09;在图像分类、目标检测等任务中取得显著成果&#xff0c;模型的复杂度和计算需求也急剧增加。2019年&#xff0c;Google Research 提出的 EfficientN…

leetcode0031 下一个排列-medium

1 题目&#xff1a; 下一个排列 官方标定难度&#xff1a;中等 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一…

Suno的对手Luno:AI音乐开发「上传参考音频 - 方式二:通过URL的方式」 —— 「Luno Api系列|AI音乐API」第12篇

导读 今天来看下Luno Api的上传参考音频 - 方式一&#xff1a;通过二进制流的方式。 参考文件&#xff0c;主要是用于在创作的过程中&#xff0c;希望AI参考这个音乐的曲风和声音来进行创作&#xff0c; 这一节看看如何直接使用url的方式进行实现。 申请和使用 「已经有API…

【开源+代码解读】Search-R1:基于强化学习的检索增强大语言模型框架3小时即可打造个人AI-search

大语言模型(LLMs)在处理复杂推理和实时信息检索时面临两大挑战:知识局限性(无法获取最新外部知识)和检索灵活性不足(传统方法依赖固定检索流程)。现有方法如检索增强生成(RAG)和工具调用(Tool-Use)存在以下问题: RAG:单轮检索导致上下文不足,无法适应多轮交互场景…

Blender-MCP服务源码2-依赖分析

Blender-MCP服务源码2-依赖分析 有个大佬做了一个Blender-MCP源码&#xff0c;第一次提交代码是【2025年3月7号】今天是【2025年月15日】也就是刚过去一周的时间&#xff0c;所以想从0开始学习这个代码&#xff0c;了解一下大佬们的开发思路 1-核心知识点 from mcp.server.fas…

【孟德尔随机化】Leave-one-out analysis的异常点,判断

下面Leave-one-out analysis的结果&#xff0c;第一条线代表去掉rs174564的结果&#xff0c;一些文献把这种情况判断为异常点/离群点&#xff0c;我们接下来看看其他结果 散点图的结果&#xff0c;最旁边的就是rs174564&#xff0c;这个SNP的点 在看下RadialMR的结果&#xff0…

【计算机网络】2物理层

物理层任务:实现相邻节点之间比特(或)的传输 1.通信基础 1.1.基本概念 1.1.1.信源,信宿,信道,数据,信号 数据通信系统主要划分为信源、信道、信宿三部分。 信源:产生和发送数据的源头。 信宿:接收数据的终点。 信道:信号的传输介质。 数据和信号都有模拟或数字…

kubernetes|云原生|部署单master的kubernetes 1.25.5版本集群完全记录(使用contained 运行时)

一、 部署目标&#xff1a; kubernetes版本1.19&#xff0c;1.23的前后差异还是比较巨大的&#xff0c;到1.25版本&#xff0c;为了追求高性能&#xff0c;自然还是需要使用containerd&#xff0c;本文将主要讲述在centos7虚拟机下部署kubernetes 1.25.5集群&#xff0c;使用…

DeepSeek+Dify本地部署私有化知识库

1.Windows安装docker Windows安装Docker-CSDN博客 2.安装olloma https://ollama.com/ 安装完成&#xff0c;可以在桌面右下角看到olloma图标 3.安装deepseekR1模型 ollama官网&#xff08;deepseek-r1&#xff09;&#xff0c;找到deepseek模型 选择合适大小的模型&#xff…

[Linux][经验总结]Ubuntu6.11.0 docker更换镜像源(实操可用的正确方法)

一、前言 关于Ubuntu更换docker镜像源&#xff0c;网上有很多的教程&#xff0c;但在实操中发现&#xff0c;更换的源无法生效——原因是我的docker是在系统安装时&#xff0c;选择附加安装的package的方式安装的。 现将处理过程记录如下。 二、获取镜像源 在网上随便找个几…

NHANES指标推荐:BRI!

文章题目&#xff1a;Association of body roundness index with cardiovascular disease in patients with cardiometabolic syndrome: a cross-sectional study based on NHANES 2009-2018 DOI&#xff1a;10.3389/fendo.2025.1524352 中文标题&#xff1a;心脏代谢综合征患者…