本次实验主要是对板底GPIO进行深入了解并搭建空工程实现流水灯工作。
硬件支持:底板有四个供用户编程使用的LED灯,分别为D6、D7、D9、D10,对应的GPIO为GPIO[5]、GPIO[0]、GPIO[1]、GPIO[2],电路原理图如下图所示:
由原理图知,当控制相关GPIO输出高电平时,LED灯亮,而当控制GPIO输出低电平时,LED熄灭。
软件设计:
1.使能GPIO模块 使能GPIO模块是通过外设使能函数:
int PSCModuleControl (unsigned int baseAdd, unsigned int moduleId, unsigned int powerDomain, unsigned int flags) 来实现的
其中参数'baseAdd'为外设使用的内存地;'moduleId' 外设类型,此处为GPIO(其标号为3);'powerDomain' 为未对端口进行操作时端口的初始状态;'flags',逻辑标志,为1时使能外设,为0时外设处于未使能状态
2.配置相应的GPIO口为普通输入输出口,实现管脚复用功能
利用函数GPIOBank0Pin0PinMuxSetup();实现GPIO端口的配置 (ps:内部函数没有办法查看到了)
3.GPIO管脚初始化,配置LED对应管脚为输出模式
GPIO端口分配为: GPIO0[0] --1、 GPIO1[0] --17、 GPIO2[0] --33、 GPIO3[0]-- 49、 GPIO4[0] --65、 GPIO5[0]-- 81、 GPIO6[0] --97、 GPIO7[0] --113、 GPIO8[0] --129。其中前半部分为GPIO模块及端口号,后半部分为对应到主控芯片的引脚好。
本次实验只用到了GPIO_0,故只需对GPIO_0进行初始化。利用函数'void GPIODirModeSet(unsigned int baseAdd, unsigned int pinNumber, unsigned int pinDir)',进行管脚初始化。其中' baseAdd'为外设GPIO在内存中的地址;' pinNumber'为对应的芯片引脚号( D7 GPIO0[0] 对应引脚号为1,GPIO0[5] 对应引脚号为6;' pinDir'为引脚模式设置,本实验中应设为输出模式' GPIO_DIR_OUTPUT '
至此,GPIO端口配置初始化完成,通过函数'void GPIOPinWrite(unsigned int baseAdd, unsigned int pinNumber, unsigned int bitValue)' 控制相关端口' pinNumber'输出电平的高低实现控制LED灯的亮灭。
程序设计代码如下所示:(此次程序设计参考了创龙提供的官方源代码)
小结:本次实验深入地了解了DSP GPIO的配置、初始化过程,在建立空工程后,要添加进相关的头文件和库文件,并且在属性设置中,Output format 应设置为eabi(ELF)格式,也可以在建立工程的时候就预先设置好。总体来说与其它类型单片机基本配置过程类似,也真实地感受到C6748提供的IO端口之多,可以在此基础上进行很多深入的研发,作为大型项目系统的控制系统是能够胜任的。
硬件支持:底板有四个供用户编程使用的LED灯,分别为D6、D7、D9、D10,对应的GPIO为GPIO[5]、GPIO[0]、GPIO[1]、GPIO[2],电路原理图如下图所示:
由原理图知,当控制相关GPIO输出高电平时,LED灯亮,而当控制GPIO输出低电平时,LED熄灭。
软件设计:
1.使能GPIO模块 使能GPIO模块是通过外设使能函数:
int PSCModuleControl (unsigned int baseAdd, unsigned int moduleId, unsigned int powerDomain, unsigned int flags) 来实现的
其中参数'baseAdd'为外设使用的内存地;'moduleId' 外设类型,此处为GPIO(其标号为3);'powerDomain' 为未对端口进行操作时端口的初始状态;'flags',逻辑标志,为1时使能外设,为0时外设处于未使能状态
2.配置相应的GPIO口为普通输入输出口,实现管脚复用功能
利用函数GPIOBank0Pin0PinMuxSetup();实现GPIO端口的配置 (ps:内部函数没有办法查看到了)
3.GPIO管脚初始化,配置LED对应管脚为输出模式
GPIO端口分配为: GPIO0[0] --1、 GPIO1[0] --17、 GPIO2[0] --33、 GPIO3[0]-- 49、 GPIO4[0] --65、 GPIO5[0]-- 81、 GPIO6[0] --97、 GPIO7[0] --113、 GPIO8[0] --129。其中前半部分为GPIO模块及端口号,后半部分为对应到主控芯片的引脚好。
本次实验只用到了GPIO_0,故只需对GPIO_0进行初始化。利用函数'void GPIODirModeSet(unsigned int baseAdd, unsigned int pinNumber, unsigned int pinDir)',进行管脚初始化。其中' baseAdd'为外设GPIO在内存中的地址;' pinNumber'为对应的芯片引脚号( D7 GPIO0[0] 对应引脚号为1,GPIO0[5] 对应引脚号为6;' pinDir'为引脚模式设置,本实验中应设为输出模式' GPIO_DIR_OUTPUT '
至此,GPIO端口配置初始化完成,通过函数'void GPIOPinWrite(unsigned int baseAdd, unsigned int pinNumber, unsigned int bitValue)' 控制相关端口' pinNumber'输出电平的高低实现控制LED灯的亮灭。
程序设计代码如下所示:(此次程序设计参考了创龙提供的官方源代码)
小结:本次实验深入地了解了DSP GPIO的配置、初始化过程,在建立空工程后,要添加进相关的头文件和库文件,并且在属性设置中,Output format 应设置为eabi(ELF)格式,也可以在建立工程的时候就预先设置好。总体来说与其它类型单片机基本配置过程类似,也真实地感受到C6748提供的IO端口之多,可以在此基础上进行很多深入的研发,作为大型项目系统的控制系统是能够胜任的。