zoukankan      html  css  js  c++  java
  • F28335 GPIO的配置————DSP TMS320F28335 学习笔记 (三)

    1 GPIO工作原理
    外界二进制信息(数字量)要被CPU处理,要给存储器存放,就需要外界信息源与两者之间的交换接口,这样的交换接口若用来进行通用目的数字量的输入输出,就被称为通用数字量输入/输出接口,简称GPIO。
    F28335的88路GPIO被分为3组

    A组:GPIO0 - GPIO31 只能配置INT1-INT3
    B组:GPIO32 - GPIO63 配置INT4-INT12
    C组:GPIO64 - GPIO87

    2 GPIO的寄存器
    2.1 GPIOMux(复用开关)寄存器 16位
    F28335 DSP有多达88个GPIO口,对应着芯片引出的88个引脚,随着芯片的封装与尺寸的确定,引脚数目是有限的,所以这88个引脚多数都是功能复用的,即可以灵活配置为输入引脚,也可以灵活配置为输出引脚,即可以作为通用I/O引脚,也可以作为特殊功能口(如SCI、SPI、ECAN等),非常灵活,用户根据需要,可以通过GPIOMUX(输入输出多路选择器,复用开关)寄存器来进行相关配置。

    GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 0 将GPIO54设为数字I/O功能
    GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1 将GPIO54设为外设功能

    2.2 GPIODIR(方向)寄存器 32位
    如果将这些引脚选择数字量I/O模式,可以通过方向寄存器GPxDIR配置数字量I/O的方向,即是作为输入引脚还是作为输出引脚。

    GpioCtrlRegs.GPBDIR.bit.GPIO54 = 0 将GPIO54设为输入功能
    GpioCtrlRegs.GPBDIR.bit.GPIO54 = 1 将GPIO54设为输出功能

    2.3 GPxQUAL(量化)寄存器 32位
    在GPIO作为数字I/O且位输入模式时,就会涉及到采样准确与否的问题,如果在输入信号毛刺较多的情况下,如果直接读取很可能会得到错误的信号。因此我们需要对输入的信号进行量化采样。
    在这里插入图片描述

    上图就是一个只有信号保持6个系统时钟周期,才确认信号是高还是低电平的操作。
    所以我们通过结合实际需求来设置这个量化寄存器GPxQUAL,得到我们所需要的准确信号,一般与GPxQSEL配合使用。

    2.4 电平操作寄存器

    GPxDAT寄存器:用于对I/O口置1或0,但是反应速度比较慢,一般在信号输入的时候用,输出的时候用下面三个。
    GPxSET寄存器: 用于对I/O置1,速度快
    GPxCLEAR寄存器:用于对I/O清0
    注意这里的GPxSET和GPxCLEAR都只能置1,不能置0,置1功能有效
    GPxTOOGLE寄存器: 用于对I/O的电平翻转

    原文链接:https://blog.csdn.net/sy243772901/article/details/83015694

    作者:柒月
    Q群 :2122210(嵌入式/机器学习)
  • 相关阅读:
    php生成excel
    gearmand
    开启Nginx的目录文件列表功能
    zend框架学习
    引用方法形成树
    智能指针实现
    图文例解C++类的多重继承与虚拟继承
    CC++定位崩溃代码行的方法
    C++函数重定义、重载、重写
    勤奋吧,一天一点,努力提高基本技能。
  • 原文地址:https://www.cnblogs.com/Ph-one/p/14597681.html
Copyright © 2011-2022 走看看