C6748的GPIO口配置使用
2018年1月17日更新:
这几天用了创龙的C6748的库,对于GPIO配置十分不爽,我移植了RK6748的库,用起来十分酸爽,把下面的文件加入到工程中,然后include头文件后就可以使用。非常好使。
链接:https://pan.baidu.com/s/1c2RVBOW 密码:umra
以下文章都是基于这个库的。
请配置后使用!
以下是原文:
这几天做项目,用到了TMS320C6748这个DSP,用的是ROCK的板子,要驱动RF24L01,用的是模拟SPI时序,对于GPIO口的配置弄了好久,终于弄清楚了。C6748好像不像是C5509A一样有统一的CSL库文件,只在他的Demo板中提供了编程的简单的库,我后来也没移植官方Demo的库,直接使用的ROCK板子提供的第三方库(可能是板子的厂家自己改装的Demo里面的库)。废话不多说了。进入正题。
1->GPIO口接线方式

2-> GPIO口配置
2.1->MUX寄存器配置
GPIO口C6748一个引脚可能复用四五个功能,所以这个地方配置有点说道,跟一般的嵌入式设备不同。看初始化GPIO的例程:
void GPIO_INIT( void )
{
RK6748_pinmuxConfig(,0x80088808,0x80088808);
RK6748_pinmuxConfig(,0x00800000,0x00800000);
RK6748_pinmuxConfig(,0x00800000,0x00800000);
GPIO_setDir( GPIO_BANK6, GPIO_PIN13, GPIO_INPUT ); // IRQ
GPIO_setDir( GPIO_BANK6, GPIO_PIN15, GPIO_OUTPUT ); // MOSI
GPIO_setDir( GPIO_BANK6, GPIO_PIN1, GPIO_OUTPUT ); // CSN
GPIO_setDir( GPIO_BANK6, GPIO_PIN11, GPIO_INPUT ); // MISO
GPIO_setDir( GPIO_BANK6, GPIO_PIN12, GPIO_OUTPUT ); // SCK
GPIO_setDir( GPIO_BANK0, GPIO_PIN8, GPIO_OUTPUT ); // CE
printf("GPIO initi finish! \n");
}
主要就是前三句RK6748_pinmuxConfig()这个函数是对功能寄存器的配置,研究了好久,资料也没说这块,看了好几个文档。最后自己研究出来了。
配置GPIO口先调用RK6748_pinmuxConfig(Uint32 reg, Uint32 in_mask, Uint32 val);三个参数。这三个参数的值需要运行Pin Mux Ultility工具软件获得。如图4.5所示为Pin Mux Ultility软件界面。

图4.5 Pin Mux Utility软件界面
如图4.5中两个红框,在红框内选择我们要使用GPIO口,在本设计中如图3.1b所示连线图,驱动RF24L01用到了IO6_13,IO6_15,IO0_2,IO6_11,IO6_12,IO6_11, IO6_12,IO0_8,这些引脚和RF24L01的IRQ,MOSI,CSN,MISO,SCK,CE信号线和数据线相连。则需要在Pin Mux Utility软件中使能这些IO口。图中4.5中在1处选择DSP信号,然后在2处选择上述提到的GPIO口,双击后使能,背景会如图中变绿,在3处查看寄存器值,这些寄存器值就是编程时需要用到的,分别是PINMUX0:0x800000000,PINMUX1:0x008000000,PINMUX13:0x0088808,在配置DSP的IO引脚的MUX寄存器时,输入以下参数:
RK6748_pinmuxConfig(0, 0x8000000000, 0x8000000000);
RK6748_pinmuxConfig(1, 0x00800000, 0x00800000);
RK6748_pinmuxConfig(13, 0x0088808, 0x0088808);
完成GPIO口的使能配置。
之后通过GPIO_setDir( GPIO_BANK6, GPIO_PIN13, GPIO_INPUT ); 语句配置GPIO口的方向,上述语句是配置IO6_13为输入方向,同理对其他引脚进行操作也是按照这个语句稍作修改。
附带这个软件的下载地址:http://download.csdn.net/detail/u014281970/9824202
C6748的GPIO口配置使用的更多相关文章
- STM32f10xxx 之 GPIO口配置
背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...
- Silicon C8051F340之GPIO口配置与使用
一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...
- stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)
STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CR ...
- 树莓派GPIO口驱动编写
一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...
- linux驱动初探之杂项设备(控制两个GPIO口)
关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...
- 基于boa服务器的web控制mini2440的GPIO口
win7 系统 虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...
- ARM Cortex M3系列GPIO口介绍(工作方式探讨)
一.Cortex M3的GPIO口特性 在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图 从图中可以看出 ...
- STM32学习笔记(二):GPIO口工作原理
STM32每个IO口具有7个寄存器来控制,每个IO口都可以自由进行编程控制,我们编程实际上控制的是通过控制那7个寄存器来控制我们的IO口,我们可以通过编程控制IO口,把IO口配置成如下八种模式: 1. ...
- 树莓派GPIO口的使用
树莓派的优势在于Liunx操作系统加GPIO口,其中IO口时物联网组成中不可缺少的,高低电平的控制是很有必要的存在,再加有python的支持,玩转GPIO相对就容易多了 管脚编号 BCM: 编号侧重 ...
随机推荐
- Vue.js - Day3
定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可: 组件化和模块化的不同: ...
- webpack优化技术参考
https://jeffjade.com/2017/08/12/125-webpack-package-optimization-for-speed/ 加速构建webpack.
- ReactNative-JS 调用原生方法实例代码(转载)
第一步首先创建ReactNative 模块类继承ReactContextBaseJavaModule package com.mixture; import android.content.Con ...
- python3绘图示例6-2(基于matplotlib,绘图流程介绍及设置等)
#!/usr/bin/env python# -*- coding:utf-8 -*- import os import numpy as npimport matplotlib as mpltfro ...
- Linux命令之创建文件夹3
1)mkdir fyr即可在当前目录下创建一个文件夹 2)在fyr文件夹下创建一个子目录 mkdir fyr/fyr1 注意:如果不存在父层目录直接创建对应父层目录下的子目录mkdir FYR/f ...
- 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)(转)
这篇文章给大家介绍关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)的相关资料,还给大家收集些关于MySQL会出现中文乱码原因常见的几点,小伙伴快来看看吧 最近两天做项目总是被乱码问题困 ...
- Spark核心组件
Spark核心组件 1.RDD resilient distributed dataset, 弹性分布式数据集.逻辑上的组件,是spark的基本抽象,代表不可变,分区化的元素集合,可以进行并行操作.该 ...
- JavaScript 获取 当前日期和三十天以前日期
//获取当前日期 var myDate = new Date(); var nowY = myDate.getFullYear(); var nowM = myDate.getMonth()+1; v ...
- 解决在php5中simple XML解析错误的问题
2004年7月,php5正式版本的发布,标志着一个全新的PHP时代的到来.PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性.程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类 ...
- 《孵化Twitter》:Twitter创始人勾心斗角史,细节披露程度令人吃惊
本书详细讲述twitter的发展史.感觉基本上是一部创始人从朋友变敌人,勾心斗角的历史.Twitter本身的产品发展反而相对比较简单. 书中披露了许多email.谈话.会议的细节,作者说这些是数百个小 ...