03DSP学习-利用syscfg配置IO
上一篇博客介绍了syscfg,对syscfg有了初步的了解,但是在真正使用上它之前,还不能理解他是一个神器。
(在写博客的时候,我是在从头到尾重新完成这个步骤,希望对初学者有点帮助)
找到Board Component
打开syscfg文件,找到Board Component选项,发现有一个LED。实际上,这也是一个IO口,只是配置成输出,用来点亮LED。我们以点亮一个LED为例学习。
配置GPIO
点击右上角的ADD按钮

可以发现,syscfg自动定义这个LED的名字为myBoardLED0,图中①所示。图中②所示可以选择两个LED,分别是LED4和LED5,这是因为TI的这款F28379D的LAUNCHPAD在原理图上就定义了这两个LED的标号,也只提供了这个两个LED来共开发者使用。我们以LED4为例。

注意,下图的①、②和③是可以展开的,是对GPIO的详细配置。通过这个我们就已经可以初步的了解如何配置GPIO了。

例如上图①,定义了LED对应的GPIO,由于是用的板载的Hardware所以默认了该Pin是数字模式且方向为输出,输出模式为配置成了推挽。
图中②是可以将该IO链接至外部中断,这里我们先不管。
最后③是确定外设的GPIO序号,选择的是GPIO31,与原理图是相对应的。
为什么说,这个Board Component实际上就是配置GPIO呢?请看下图,当配置完LED后,发现自动在GPIO处配置了一个一模一样的。由此也可以发现,当我们需要配置一个GPIO时,也可以直接在GPIO处配置,尤其是非板载的外设。

好了以上便是GPIO的配置。我们 Ctrl+S保存。
编译工程
注意下图中,CPU1_RAM 文件夹是不能展开的,Generated Source中也是没有文件的,我们点击③编译。

编译完成后,出现了上述文件夹中出现了文件,其中最关键的就是board.c 和 board.h文件,下面我们继续了解。

了解syscfg生成的文件
下图为board.c文件

从上面可以发现,Board_init函数对所有配置了的外设进行了初始化,这里我们只配置了GPIO。同时也能够注意到这里对LED0对应的GPIO进行了宏定义,我们去board.h中观察。从下图可以看出,这里宏定义了myBoardLED0_GPIO 为 31,这是因为我们使用的GPIO对应的就是Pin 31.

使用syscfg生成的文件
上面编译过后,只是syscfg生成了一些外设的初始化函数供我们使用,我们点开main.c文件,发现并没有调用,需要我们自己调用。

我们写一个简单的函数。注意需要在一开始包含board的头文件 board.h。函数实现一个功能,让DSP在死循环中计数,当计数达到10000时,翻转IO。注意!由于DSP的主频较高,所以计数到10000翻转IO我们也看不到LED的闪烁,所以我用了一个LED_Status来观察该Pin的寄存器的值。从下面两张图可以看出,寄存器是在0-1变化的。


以上便完成了对syscfg的使用。我们进行一个小结
syscfg使用小结
①首先,利用syscfg配置我们需要的功能;
②然后,编译工程,syscfg会更新生成的board.c和board.h文件;
③再,在main.c中包含board.h头文件;
④接着, 在main.c中调用board.c中的初始化函数;
⑤最后,完成了对syscfg中配置了的外设的初始化以及调用。
注意~!
我们在使用了syscfg之后,还用了例如GPIO_togglePin();GPIO_readPin()等GPIO的操作函数,这就不得不提 TI 提供的driverlib了,也是非常好用的。我们后面再一起学习~
相关文章:
03DSP学习-利用syscfg配置IO
上一篇博客介绍了syscfg,对syscfg有了初步的了解,但是在真正使用上它之前,还不能理解他是一个神器。 (在写博客的时候,我是在从头到尾重新完成这个步骤,希望对初学者有点帮助) 找到Board Component 打开syscfg文件&…...
web - RequestResponse
##Request&Response 1,Request和Response的概述 Request是请求对象,Response是响应对象。这两个对象在我们使用Servlet的时候有看到: 此时,我们就需要思考一个问题request和response这两个参数的作用是什么? request:获取请…...
个人文章汇总
文章模块文章汇总心得&资料 真正优秀的人,更懂得尊重别人 如何用沟通解决80%的工作问题 一个IT青年北漂四年的感悟 史上最污技术解读 操作系统相关 操作系统基础 操作系统:从工厂的角度来理解进程线程操作系统:详述对进程和线程的认识操作…...
Java | Leetcode Java题解之第436题寻找右区间
题目: 题解: class Solution {public int[] findRightInterval(int[][] intervals) {int n intervals.length;int[][] startIntervals new int[n][2];int[][] endIntervals new int[n][2];for (int i 0; i < n; i) {startIntervals[i][0] inter…...
大模型智能体在金融公告理解领域的应用 | OPENAIGC开发者大赛高校组AI创新之星奖
在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…...
链表入门(LeetCode题目)
来源:左程云算法 链表的题目我们经常是有思路但是实现起来总有些小问题,所以是准备笔试应多加练习的一类题 206. 反转链表 这道题我们可以新开链表来存,但是如果面试中有这道题,面试官让你优化又该如何呢?所以我们采…...
kibana开启访问登录认证
编辑es配置文件,添加以下内容开启es认证 vim /etc/elasticsearch/elasticsearch.yml http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enable…...
Java 14Java 15新特性概述
一、Java 14 发布于2020年3月17日。Java 14主要新特性如下: JEP 305:Pattern Matching for instanceof (Preview)instanceof 的模式匹配(预览) JEP 358:Helpful NullPointerExceptions 有用的 NullPointerExceptions…...
流量特征随机ua修改
作为一个蓝队吗喽,总是能看见因为ua头特征而直接被拦截的ip,当然了还有些是通过X-Forwarded-For被拦截的(X-Forwarded-For:fofa.info,不拦你才怪), 主要是通过python的mitmproxy和fake_useragent两个模块进行实现,代码量极低 fr…...
CSP-S 2024 提高级 第一轮(初赛) 阅读程序(3)
【题目】 CSP-S 2024 提高级 第一轮(初赛) 阅读程序(3) 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 const int maxn 1000000 5; 7 const int P1 998…...
如何在 Rust 中通过 Rumqttc 实现 MQTT 通信
Rust 简介 Rust 是一门系统级编程语言,以其卓越的性能、并发能力以及内存安全特性著称。Rust 由 Mozilla 推出,目标是在现代软件开发中提供一种安全高效的编程语言。其设计旨在提供安全、并发和高效的编程体验,同时保持开发效率和代码质量不…...
广东高校建设AIGC实验室时需要注意哪几个关键点?
随着人工智能技术的飞速发展,特别是生成式人工智能(AIGC)在各行各业中的广泛应用,它已经成为推动新一轮科技革命和产业变革的关键力量。教育部等相关部门近年来也高度重视人工智能领域的人才培养工作,强调要加快推动高…...
设计模式-PIMPL 模式
PIMPL(Pointer to IMPLementation),又称Opaque Pointer模式或编译防火墙,是一种在C中广泛应用的编程技术。其核心思想是将类的实现细节从公共接口中分离出来,通过指向实现类的指针来访问类的具体功能。这种模式在提高代…...
Docker部署MongoDB教程
嘿,大家好!今天我在三丰云免费服务器上进行了一次激动人心的MongoDB部署测试。这款免费云服务器1核CPU、1G内存、10G硬盘、5M带宽,是不错的免费服务器选择。 首先,让我们简要介绍一下使用到的Docker和MongoDB软件。Docker是一个开…...
堆排序易错点
1.建堆和调整堆(插入和删除) 建堆和调整堆的过程是不一样的: 建堆 从非终端节点编号的结点开始依次建立大根堆,例如: 拿第2个图说,首先比较-1,7,从中选一个小的,即“-1”…...
安卓13长按电源按键直接关机 andriod13不显示关机对话框直接关机
总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 有些设备需要在长按电源键的时候,直接关机。不需要弹出对话框进行询问。 2.问题分析 过滤电源按键,需要在系统里面处理的话,那么我们需要熟悉android的事件分发,然后再…...
React学习笔记(四)——React 组件生命周期
目录 1. 生命周期-概览 2. 生命周期-挂载阶段 3. 生命周期-更新阶段 4. 生命周期-卸载阶段 5. setState扩展-发现问题 6. setState扩展-更多用法 7. setState扩展-异步 1. 生命周期-概览 了解react类组件生命周期整体情况 大致步骤: 什么是生命周期React类组…...
PHP的guzzlehttp/guzzle库在碰到各种异常时的场景
PHP的guzzlehttp/guzzle库在碰到各种异常时的场景 结论: 经过测试得知 在http状态码为1xx, 2xx, 3xx时, 会在111处输出返回 在http状态码为4xx, 5xx时, 会在222处被捕获 在目标服务不可达或其他异常时会在333处被捕获 测试过程: 用其他程序写个接口, 实现输入什么状态码就返…...
多机部署,负载均衡-LoadBalance
文章目录 多机部署,负载均衡-LoadBalance1. 开启多个服务2. 什么是负载均衡负载均衡的实现客户端负载均衡 3. Spring Cloud LoadBalance快速上手使用Spring Cloud LoadBalance实现负载均衡修改IP,端口号为服务名称启动多个服务 负载均衡策略自定义负载均衡策略 LoadBalance原理…...
Hadoop安装与配置
一、Hadoop安装与配置 1、解压Hadoop安装包 找到hadoop-2.6.0.tar.gz,将其复到master0节点的”/home/csu”目录内,解压hadoop [csumaster0 ~]$ tar -zxvf ~/hadoop-2.6.0.tar.gz 解压成成功后自动在csu目录下创建hadoop-2.6.0子目录,可以用cd hadoo…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...

