DSP相关笔记_1:LaunchXL-F28379D的简单教程系列(一)GPIO输出

2023-10-30

LaunchXL-F28379D的简单教程系列(一)GPIO输出

注:这是本人关于Ti的C2000系列的学习笔记,所用工具有官方的开发软件CCS10版本,帮助文库以及函数库软件controlSUITE。硬件部分LaunchXL-F28379D和逻辑分析仪一台

本文分为函数库和寄存器两种方法

但都需要理解硬件的架构
图一
在这里插入图片描述

图二
在这里插入图片描述
图一较为简单,而图二相对更加具体,我们这里也基本只会涉及到图一讲解,图二待以后用其他外设的时候解释一下。
根据图一要想我们的GPIO作为输出口并正常工作至少需要配置GPxDIR、GPxMUX1或GPxMUX2、GPxGMUX1或GPxGMUX2、GPxPUD这几个寄存器。
注:
第一点:
这里解释一下,因为本DSP的封装引脚很多一共168个,由于寄存器只有32位,所以将所有的引脚分为了A,B,C,D,E,F六组
• Port A consists of GPIO0-GPIO31
• Port B consists of GPIO32-GPIO63
• Port C consists of GPIO64-GPIO95
• Port D consists of GPIO96-GPIO127
• Port E consists of GPIO128-GPIO159
• Port F consists of GPIO160-GPIO168
因此其中小x就是对应的A,B,C,D,E,F,但在函数库编写的时候是直接写引脚的编号。
假设我们要对GPIO0进行操作,首先明确它在A组,才能通过A组对其寄存器进行相关操作。
第二点:
就是(GPxGMUX1或GPxGMUX2)和(GPxGMUX1或GPxGMUX2),其实因为是两位所以一个GPxMUX1或GPxMUX2、GPxGMUX1或GPxGMUX2的寄存器,其实只涉及了16引脚,因此将它分为1和2两组。

GPxDIR寄存器是对方向的配置,0是输入(input),1是输出(output)。
GPxMUX和GPxGMUX是通过不同的配置进行外设的选择,简单就是复用的配置,这里可以看一下配置资料:
在这里插入图片描述
当然我们因为这里只需要普通GPIO功能就只需要把他们都设为0就行了。
GPxPUD是配置需不需上拉的寄存器,GPIO0-11都是默认不上拉,而其余的是默认上拉。
对GPIO值操作的寄存器有四个GPxSET,GPxCLEAR,GPxTOGGLE,GPxDAT
这里推荐不要直接对GPxDAT进行操作,通过GPxSET置位、GPxCLEAR复位、GPxTOGGLE翻转间接操作

直接上代码

方法一:方波个数5个(i=5)

#include "F28x_Project.h"
void delay_loop();
void main(void)
{
    //1.配置时钟,需要包括F2837xD_SysCtrl.c
    InitSysCtrl();
    //2.初始化GPIO,需要包括F2837xD_Gpio.c
    InitGpio();
    //3.关CPU中断
    DINT;
    //4.初始化PIE,并清楚相关寄存器,需要包括F2837xD_PieCtrl.c,F2837xD_PieVect.c,F2837xD_DefaultIsr.c
    InitPieCtrl();
    IER = 0x0000;
    IFR = 0x0000;
    InitPieVectTable();
    //方法一:库函数编写,前提InitGpio()要有
    //实验对象:GPIO0->P0
    GPIO_SetupPinMux(0,GPIO_MUX_CPU1,0x0);//param1:引脚,param2:控制器,param3:外设(0,2,4,8默认为GPIO)
    GPIO_SetupPinOptions(0,GPIO_OUTPUT,GPIO_PUSHPULL);//param1:引脚,param2:输入或输出,param3:引脚模式

    int i;
    for(i=5;i>0;i--)
    {
        GPIO_WritePin(0,0);
        delay_loop();
        GPIO_WritePin(0,1);
        delay_loop();
        GPIO_WritePin(0,0);
    }
}

void delay_loop()
{
    short i;
    for (i = 0; i < 1000; i++) {}
}

逻分结果:
在这里插入图片描述

方法二:方波个数6个(i=6)

#include "F28x_Project.h"
void delay_loop();
void main(void)
{
    //1.配置时钟,需要包括F2837xD_SysCtrl.c
    InitSysCtrl();
    //2.关CPU中断
    DINT;
    //3.初始化PIE,并清楚相关寄存器,需要包括F2837xD_PieCtrl.c,F2837xD_PieVect.c,F2837xD_DefaultIsr.c
    InitPieCtrl();
    IER = 0x0000;
    IFR = 0x0000;
    InitPieVectTable();
    //方法二:寄存器编写
    //实验对象:GPIO0->P0
    EALLOW;//允许写入保护
    GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;
    GpioCtrlRegs.GPAGMUX1.bit.GPIO0 = 0;
    GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;
    GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;
    EDIS;//关闭写入保护



    int i;
    for(i=6;i>0;i--)
    {
        GpioDataRegs.GPACLEAR.bit.GPIO0 = 1;
        delay_loop();
        GpioDataRegs.GPASET.bit.GPIO0=1;
        delay_loop();
        GpioDataRegs.GPACLEAR.bit.GPIO0 = 1;
    }
}

void delay_loop()
{
    short i;
    for (i = 0; i < 1000; i++) {}
}

逻分结果:
在这里插入图片描述
总结:这是粗略讲了一下,因为后面使用外设的时候这都是基本操作,都可以通过函数库和寄存器实现,不过我更多会使用函数库的方法后面,因为我也才玩不久,现在也是慢慢啃英文参考资料,如果有啥错了直接给我评论就行了,只是记录一下。

参考资料:TMS320F2837XD Dual-Core Microcontollers Technical Reference Manual

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DSP相关笔记_1:LaunchXL-F28379D的简单教程系列(一)GPIO输出 的相关文章

  • CPU、MCU、MPU、DSP的区别

    CPU xff08 Central Processing Unit xff0c 中央处理器 xff09 发展出来三个分枝 xff0c 一个是DSP xff08 Digital Signal Processing Processor xff0
  • STM32H750VBT6的DSP使用的学习——基于CubeMX

    前言 人生如逆旅 xff0c 我亦是行人 1 STM32H7的DSP功能介绍 xff08 STMicroelectronics xff0c 简称ST xff09 推出新的运算性能创记录的H7系列微控制器 新系列内置STM32平台中存储容量最
  • DSP的PWM

    PRD 周期寄存器 xff0c 决定了PWM的周期 频率 CMP 比较寄存器 xff0c 决定了PWM的占空比 CRT 计数寄存器 PWM原理图 为什么需要PWM
  • DSP:TMS320C6657 之 UART波特率问题

    6657 设置串口波特率 以614400为例 xff08 1 xff09 根据公式计算分频系数 xff08 2 xff09 1GHz 主频下 UART 输入频率 166666666Hz xff08 1 6 xff09 xff08 3 xff
  • DSP-滤波器稳定性与极点 &数字滤波器&TMS320C67XX dsp启动过程

    DSP技术 https www cnblogs com kanite category 1318278 html 滤波器稳定性与极点 在数字信号处理种 系统的稳定性是一个很重要的问题 比如说在滤波器的设计种 都要求系统必须稳定 否则是无法实
  • TI DSP TMS320C66x学习笔记之VLIB测试数据(三)

    VLIB是TI提供的针对C6x优化过的视觉库 下载地址 http software dl ti com libs vlib latest index FDS html 提供40多个核心函数 主要实现以下功能 Background Model
  • Error -151 @ 0x0

    CCS出现以下错误提示 Error connecting to the target Error 151 0x0 One of the FTDI driver functions used during the connect return
  • MATLAB利用FFT对信号进行频谱分析

    1 实验目的 1 进一步加深DFT算法原理和基本性质的理解 因为FFT只是DFT的一种快速算法 所以FFT的运算结果必然满足DFT的基本性质 2 熟悉FFT算法原理和FFT程序的应用 3 学习利用FFT对离散时间信号进行频谱分析的方法 了解
  • 感应(异步)电机磁场定向控制速度环PI控制参数设计

    电机控制系列文章 感应 异步 电机磁场定向控制MATLAB Simulink建模 感应 异步 电机磁场定向控制电流环PI控制参数设计 目录 电机控制系列文章 前言 一 速度环开环传递函数 二 速度环开环传递函数零极点配置 三 速度环闭环性能
  • 傅里叶变换的实质--正交之美

    引 最近在搞一个音频解码器 将随意录制好的声音按照不同的频率分离出不同的音频流 然后推到不同的音箱中 如果再考虑一下音场的谐性 那就是一个N 1声道的解码系统了 我只是想在女儿 或者儿子 出生之前为她做点事情 以便能最终做出个东西送给她 或
  • 基于matlab和FFT算法实现信号频谱分析

    系列文章目录 数字信号处理 DSP Digital Signal Process 是电子通信领域非常重要的研究方向 博主汇总了数字信号处理 DSP 中常用的经典案例分析 主要基于算法分析 MATLAB程序实现 信号图像显示 对数字信号处理的
  • [转] DSP缓存机制

    本文主要以DSP讲解cache原理 但原理与CPU是相通的 故转载 原文地址 DSP 缓存机制 桑迪亚哥的博客 CSDN博客 dsp的cache DSP 缓存机制 注 本文说明的DSP基于TI c6000系列的C66x DSP 目录 DSP
  • MCU和DSP区别

    1 概述 随着处理器技术的不断发展 目前来看CPU Central Processing Unit 逐渐出现三种分支 分别是DSP Digital Signal Processing Processor 数字信号处理 以及MCU Micro
  • (多核DSP快速入门)5.SYS/BIOS的使用实例分析

    原创文章 转载请注册来源http blog csdn net tostq 系列教程目录 http blog csdn net tostq article details 51245979 SYS BIOS是一个可扩展的实时内核 或者说是操作
  • 【音效处理】Reverb 混响算法简介

    系列文章目录 Delay Line 简介及其 C C 实现 LFO 低频振荡器简介及其 C C 实现 音效处理 Delay Echo 简介 音效处理 Vibrato 简介 文章目录 系列文章目录 一 混响 二 人工混响 三 数字混响算法 3
  • 深入理解采样定理 + Matlab 仿真 Sa 函数的采样与恢复

    建议配合国宝老师的视频食用 信号与线性系统分析 吴大正 郭宝龙 文章目录 1 采样的说明 1 为什么要取样 2 什么是取样 2 采样定理 1 为什么要有奈奎斯特频率 2 什么是采样定理 3 信号的恢复 4 Matlab的Sa函数取样仿真 1
  • CCS5.2.1/5.5 错误-No source available for main()

    1 错误现象 在CCS5 2 1开发环境中从别处导入项目并编译完成后 下载程序时出现如下图所示错误 备注 当前使用的compiler版本为C6000v7 4 14 2 解决办法 进入项目属性设置页面 可以看到当前的调试模式为 Suppres
  • 感应(异步)电机磁场定向控制电流环PI控制参数设计

    电机控制系列文章 感应 异步 电机磁场定向控制MATLAB Simulink建模 感应 异步 电机磁场定向控制速度环PI控制参数设计 目录 电机控制系列文章 前言 一 并联型PI与串联型PI 二 被控对象模型 三 电流环闭环传递函数 四 电
  • 纯国产DSP,QX320F28335,自研内核指令集,主频150MHz,自研工具链,硬件兼容TMS320F28335

    32位单核CPU 主频150MHz flash 1M SRAM 500KB 单精度浮点运算FPU 3个4M精度12位的ADC 12个ePWM 6个HRPWM 150ps
  • 纯国产DSP,QX320F28335,自研内核指令集,主频150MHz,自研工具链,硬件兼容TMS320F28335

    32位单核CPU 主频150MHz flash 1M SRAM 500KB 单精度浮点运算FPU 3个4M精度12位的ADC 12个ePWM 6个HRPWM 150ps

随机推荐

  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • Notepad++的HEX-Editor插件

    安装HEX Editor既可以联网安装如下 也可以直接把HexEditor dll下载好了放到plugins插件文件夹里面 1 到网站下载Hex Editer工具 https sourceforge net projects npp plu
  • arduino uno r3 控制42不进电机+TB6600驱动

    1 接线图如下 2 arduino和TB6600链接 arduino TB6600 GND ENA 空 ENA GND DIR 5口 DIR GND PUL 6口 PUL 3 TB6600和42不进电机链接 TB6600 42不进电机 A
  • Spring系列学习之Spring Cloud GCP Google云平台消息传递及存储

    英文原文 https spring io projects spring cloud gcp 目录 概述 特性 入门 快速开始 学习 文档 示例 概述 Spring Cloud GCP项目旨在使Spring Framework成为Googl
  • Scanner注意事项与报错(next()、nextInt()、nextline()等)

    首先介绍一个经典的问题 nextline和nextInt混用出现的问题 当前面有nextInt时 nextLine不会等待你输入字符串 如下 如图 控制台还没有等我输入字符串就直接输出了num 因为你输入10的时候实际是按了回车 因此输入的
  • Hive常用函数介绍(窗口函数)

    1 窗口函数介绍 窗口函数 也叫也叫OLAP函数 Online Anallytical Processing 联机分析处理 可对数据库数据进行实时分析处理 2 窗口函数入门 2 1 函数说明 窗口函数 也可以叫做开窗函数 其从本质来看是将
  • Parasoft SOAtes发布最新v9.10.7版本,采用全新的测试数据管理方法!

    Parasoft SOAtest是业内最全面的测试解决方案 有着和loadrunner同样强大的性能测试 压力测试 负载测试功能 很高兴的告诉大家 Parasoft SOAtest更新至v9 10 7版本 新增多种功能并实现全面的API测试
  • IMU数据手套控制无人机飞行

    在未知和复杂的飞行环境中 无人机飞行动作的规划 需要手势辅助人机 针对这一问题 军事科学院国防技术国家创新研究所联合天津人工智能创新中心和华东理工大学团队研发了一款可以捕捉指尖运动和手势的IMU数据手套 用以实现人与无人机的交互和辅助控制
  • ipa-apk.cn/dbl.html,ComicBook/package-lock.json at master · liyuechun/ComicBook · GitHub

    name comicbook version 0 0 1 lockfileVersion 1 dependencies abab version 1 0 3 resolved https registry npmjs org abab ab
  • C++基础08---this,static

    1 this 1 在我们利用某个类对象调用成员函数时 编译器将这个对象的地址传递给该成员函数中的一个隐藏的this形参 2 任何对类成员变量的直接访问都被看作是通过this做隐式调用 3 this指针只能在成员函数中使用 全局函数 静态函数
  • 程序员版孔乙己

    互联网的格局 是和别处不同的 都是格子衫 稀疏的头发 双肩包 男 写代码的人 傍午傍晚散了工 每每三两人 背着手 沿着软件园溜达一圈 倘肯花点钱 便还会走到星巴克 买一杯咖啡 那样便能再多摸几分钟的鱼 我从十九岁起 便在软件园的星巴克打工
  • 代码随想录一刷-Day08

    Offer58 II 左旋转字符串 使用中间数组很容易 public String reverseLeftWords String s int n if n 0 s null s length 0 return s 使用中间数组 char
  • vRealize Operations Manager 安装部署

    前话 关于VROPS好不好用的问题 我只想说 谁用谁知道 早用早HAPPY 官方描述有 VMware vRealize Operations是一个高度可扩展 可扩展且直观的操作平台 可集中管理软件定义数据中心 SDDC 它可根据业务或运营意
  • 【PCIe】5: PCIe DBI (Date Bus Interface)

    目录 1 DBI 2 CDM 3 ELBI 3 1 EP 的排布 3 2 RC对应空间排布 1 DBI DBI Data Bus Interface You can use this interface to locally access
  • 如何保证消息队列的顺序性?

    面试题 如何保证消息的顺序性 面试官心理分析 其实这个也是用 MQ 的时候必问的话题 第一看看你了不了解顺序这个事儿 第二看看你有没有办法保证消息是有顺序的 这是生产系统中常见的问题 面试题剖析 我举个例子 我们以前做过一个 mysql b
  • 二十七、python学习之前端(十):Vue入门

    一 vue简介 1 vue简介 Vue js是前端三大新框架 Angular js React js Vue js之一 Vue js目前的使用和关注程度在三大框架中稍微胜出 并且它的热度还在递增 Vue js可以作为一个js库来使用 也可以
  • 安装QT5.4.0

    安装 Qt 第一步 到官网https download qt io new archive qt 5 4 5 4 0 qt opensource linux x64 5 4 0 run下载 Qt 安装包 此处本人安装的是 qt openso
  • Java算法——地图单点坐标判断是否存在于某个区域

    Java算法 地图单点坐标判断是否存在于某个区域 在气象项目中 需要我们通过网格数据 来识别分析天气 之后判断该天气在具体什么省市县 而提醒该地方将要发生什么天气 而每个省市县都有自己得经纬度范围 而且不规则性 我们如何将从网格上面识别得天
  • 初识uni-app

    初识uni app 跨平台开发的神器 本文将为大家介绍uni app 一款强大的跨平台App开发框架 我们将探讨其特点 优势以及如何快速上手开发一个简单的uni app应用 1 什么是uni app uni app是由DCloud公司研发的
  • DSP相关笔记_1:LaunchXL-F28379D的简单教程系列(一)GPIO输出

    LaunchXL F28379D的简单教程系列 一 GPIO输出 本文分为函数库和寄存器两种方法 注 这是本人关于Ti的C2000系列的学习笔记 所用工具有官方的开发软件CCS10版本 帮助文库以及函数库软件controlSUITE 硬件部