DSP28335笔记——系统时钟 和 GPIO

闲谈

原本信誓旦旦的说要在这个寒假拓展自己能力为一年后毕业工作提高自我竞争力,但是事实证明人类的惰性实在难以克服。开发板到手有三天,在没有外界压力情况下的自我学习效率也确实低的可怜,没办法只好自己给自己施加压力了。希望能够通过博客给自己的学习做个记录,同时也能实现自我监督的目的。

文章目录

  • DSP28335笔记——系统时钟 和 GPIO
  • 闲谈
  • 一、DSP28335简介
  • 二、系统时钟
    • 1.时钟框图
    • 2.代码实现
  • 三、GPIO点亮LED
    • 1.GPIO方框图
    • 2.对应寄存器:
    • 3.相关代码实现
  • THE END

一、DSP28335简介

  1. 主频:150MHz
  2. 1.9V/1.8V内核,3.3V I/O电压
  3. 支持单精度浮点运算
  4. 哈佛总线架构
  5. 六通道DMA处理器
  6. 十八个PWM输出
  7. 六个高分辨率脉宽调制器(HRPWM)
  8. 两个正交编码器接口
  9. 八个32位定时器
  10. 三个SCI(uart)接口
  11. 两个CAN模块
  12. 一个SPI模块
  13. 一个I2C模块
  14. 十六通道12位ADC模块

二、系统时钟

1.时钟框图


根据框图,X1和X2引脚连接30MHz晶振,通常配置PLL为10倍频,DIVSEL为2分频,从而获得150MHz的系统主频。

2.代码实现

通过改写TI提供的源代码实现系统主频的修改;

//---------------------------------------------------------------------------
// InitSysCtrl:
//---------------------------------------------------------------------------
// 这段函数的功能就是将系统控制寄存器初始化到想要的状态;
//具体步骤可以分成四部分:
// - 禁止看门狗电路
// - 给PLLCR寄存器赋值以获得想要的系统时钟频率
// - 给高、低速外设时钟预定标寄存器赋值以获得想要的高、低速外设时钟频率
// - 对需要使用的外设时钟进行使能void InitSysCtrl(void)
{// Disable the watchdogDisableDog();// Initialize the PLL control: PLLCR and DIVSEL// DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2833x_Examples.hInitPll(DSP28_PLLCR,DSP28_DIVSEL);//主频150M/*通过修改DSP28_PLLCR,DSP28_DIVSEL对应的宏定义值实现主频的改变*/// Initialize the peripheral clocksInitPeripheralClocks();
}

(快捷键:按住Ctrl左键点击对应变量,跳转至声名位置)

三、GPIO点亮LED

根据以往学习经验,完成GPIO的配置也就应该和STM32大致相同。首先放出GPIO的框图:

1.GPIO方框图

2.对应寄存器:

本节只了解最基础的GPIO功能。
GPIO分A(Pin0 ~ 31)、B(Pin32 ~ 63)、C(Pin64 ~ 87)三组,只需要了解一组即可。

控制寄存器 对应功能
MUX1/2 引脚功能选择(具体分配看数据手册)
DIR 方向寄存器
PUD 上拉禁用寄存器
数据寄存器 对应功能
DAT 数据寄存器
SET 数据设定寄存器
CLEAR 数据清除寄存器
TOGGLE 数据翻转寄存器

3.相关代码实现

根据原理图,完成引脚Pin60的相关初始化:GPIO输出模式,上拉不禁用

void LED_Init(void)
{EALLOW;//关闭写保护SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    //开启GPIO时钟GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0;    //设置为通用GPIO功能GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1;     //设置GPIO为输出GpioCtrlRegs.GPBPUD.bit.GPIO60 = 0;     //设置上拉电阻GpioDataRegs.GPBSET.bit.GPIO60 = 1;     //设置GPIO输出高电平EDIS;//开启写保护
}
(部分寄存器存在写保护功能,当无法分清该寄存器是否有该功能时,通通在函数前后添加 **EALLOW;**和 **EDIS;** )

主函数中通过不断翻转引脚电平状态实现LED灯的闪烁。

void main()
{InitSysCtrl();//系统时钟初始化LED_Init();//LED驱动初始化while(1){GpioDataRegs.GPBTOGGLE.bit.GPIO60 = 1;//翻转Pin60电平delay();}
}

最后,通过烧写入RAM进行调试观察现象。
(DSP通过在工程中添加不同的cmd文件——内存映射,实现将程序烧写入RAM或FLASH的选择。)

THE END

本次文章内容相对简单,但主要目的为督促自己开始认真学习。

DSP28335笔记——系统时钟 和 GPIO相关推荐

  1. DSP学习笔记之系统时钟、定时器、GPIO篇

    \qquad写在前面,不管是C51.MSP430.32也好,DSP也好,总要有一个掌握的比较熟练,不能每次都复制粘贴别人的代码然后修修补补吧.不要再做Ctrl +C.Ctrl+V工程师.主要参考来自于 ...

  2. DSP28335笔记 ———— 中断系统 之 外部中断

    DSP28335笔记 ---- 中断系统 之 外部中断 我用的开发板是"硬汉DSP28335开发板",文中对于硬件的描述可以说是没有,而且我还没有附上电路图希望在看的朋友不要喷我. ...

  3. STM32入门笔记(03):系统时钟控制 RCC (STM32CubeMx 初始化配置)

    目的/起源: B站@立邦大侠 的在视频里面提到,他用STM32CubeMx 更清晰地进行STM32系统时钟配置以及时钟架构. STM32 开发流程 : 芯片选型 - 原理图设计 - PCBlayout ...

  4. STM32开发笔记48:STM32F4+DP83848以太网通信指南系列(二):系统时钟

    本章为系列指南第二章,主要是介绍一下STM32F4的时钟配置.时钟是一个嵌入式产品从零开始开发的基石,一切逻辑都在时钟的节奏中安静地弹奏着,时钟为整个电路带来了欢快的「心跳」.开发者如果对时钟没有控制 ...

  5. STM32F103学习笔记四 时钟系统

    STM32F103学习笔记四 时钟系统 本文简述了自己学习时钟系统的一些框架,参照风水月 1. 单片机中时钟系统的理解 1.1 概述 时钟是单片机的脉搏,是单片机的驱动源 用任何一个外设都必须打开相应 ...

  6. 【小梅哥SOPC学习笔记】系统时钟的使用

    给NIOS II CPU添加一颗澎湃的心--系统时钟的使用 本实验介绍如何在Qsys中添加一个定时器作为NIOS II的心跳定时器,并在NIOS II中软件编程使用该定时器. 将上一个实验watchd ...

  7. STM32学习笔记1----STM32F429系统时钟

    FreeRTOS任务基本知识 1.系统时钟     在 STM32F429 中,有 5 个最重要的时钟源,为 HSI.HSE.LSI.LSE.PLL.其中 PLL实际是分为三个时钟源,分别为主 PLL ...

  8. 【STM32F10系列实操笔记】系统时钟的配置

    STM32F10系列的相关手册 链接:https://pan.baidu.com/s/1_EchQZ6y0CanRQTACDe67Q  提取码:sdsd 下图应该是配置系统时钟必不可少的一张图吧 搭配 ...

  9. 【MSP430G2553】图形化开发笔记(2) 系统时钟和低功耗模式

    目录 系统时钟概述 BCS+模块单元的基本构造 时钟-概览 介绍 Basic User 模式 Power User 模式 1. 数控振荡器 DCO 2. 出厂预校正频率 3. 低频振荡器 VLO 4. ...

  10. STM32系统时钟默认设置

    "我们一直都说STM32有一个非常复杂的时钟系统,然而在原子或者野火的例程中,只要涉及到时钟,我们却只能看到类似的库函数调用,如RCC_APB2PeriphClockCmd(RCC_APB2 ...

最新文章

  1. 【scala初学】scala symbol 符号 -3
  2. Linux 配置ip地址
  3. 带你学python基础:元祖tuple和字典dictionary
  4. LAUNCHPAD运行5110测试程序
  5. ES6新特性之Generator函数
  6. java 面试题三十二 mysql查询面试题
  7. ASP.NET和C#中对XML的操作,以及简单的xml与xsl !
  8. ef 数据迁移mysql_Windows下重装xampp并做MySQL数据迁移的步骤
  9. PAT_B_1004_Java(20分)
  10. 业务模块化打造单体和分布式部署同步支持方案
  11. Hystrix在网关Zuul使用中遇到问题
  12. iPhone 14 Pro或配备8GB内存:苹果史上开天辟地的升级
  13. 关于搭建wiki镜像和数据库的一些东西
  14. 2020深圳杯数学建模C题
  15. 【Redis】模拟手机验证码案例:Jedis使用、get、hget、hincrBy、setex、生成6位随机数工具
  16. 此计算机未安装程序,此计算机上未安装 Windows 组件 Server-Gui-Mgmt-Infra
  17. layim框架+websocket即时通讯功能
  18. python修改turtle画笔颜色的函数_以下选项中,修改turtle画笔颜色的函数是() (8.0分)_学小易找答案...
  19. 「面试必背」大数据面试题100道(收藏)
  20. 印度尼西亚通过新区块链项目改善其航运产业

热门文章

  1. 在线直播网站源码开发,音视频同步的处理方案及选择
  2. 谭浩强c语言程序设计笔记讲义,【笔记】谭浩强C语言程序设计--简明笔记
  3. 人脸识别有滥用风险,使用加密函数?
  4. java 1.6 jdk 64_jdk 1.6 64位官方下载|Java JDK(Java SE Development Kit) 1.6 64位版 - 121下载站...
  5. C++简单的写文本文件代码
  6. 用matlab进行拉普拉斯滤波,[转载]matlab滤波技术及区域处理---线性滤波
  7. android直播弹幕开发,Android上专为视屏直播打造的轻量级弹幕库(100多kb)
  8. 计算机网络设备是固定资产哪类,财政六大类常用固定资产分类及代码
  9. 在线的pdf阅读器(javaweb)
  10. TFTP软件测试自学,tftp