本人使用的是创龙公司提供的开发板!据说和TI官网的开发板类似。开发环境是:CCS5.5+win7。硬件是:DSP6678开发板+TL-XDS200仿真器
由于开发板上的LED1和LED2是
共阴极且对应GPIO14和GPIO15引脚,所以直接控制GPIO14和GPIO15输出都为高电平即可。
#define是个宏定义,定义一个指向内存单元为x的volatile unsigned int类型的指针并且取里面的内容,下面结合具体例子说明。
DSP6678的GPIO外设基地址是0x02320000
GIPO的控制寄存器下:
首先要设置GPIO为输出方向:HWREG( 0x02320000 + 0x10 ) &= ~(1 << 14);首先指针向0x02320010单元,此单元存放的是volatile unsigned int类型的数据, 就是说明数据是可变的,然后是把第十四位的值写0放入以此开始的连续的四个字节中。 HWREG( 0x02320000 + 0x10 ) &= ~(1 << 15);即配置GPIO14和GPIO15为输出引脚。DIR方向寄存器相对于GPIO基地址偏移是0x10 当DIR14被写入0时GIPO14表示输出,1时GPIO14表示输入。
然后设置GPIO输出数据,有两种数据输出控制寄存器。一种是向OUT_DATA寄存器的相应位,写要输出的值(0或者1),写入1即相应的GPIO引脚输出为1。HWREG( 0x02320000 + 0x14 ) |= (1 << 14);第二种是向SET_DATA寄存器的相应位写1时,OUT_DATA的相应位也会被设置为1,写0OUT_DATA位不受影响。HWREG( 0x02320000 + 0x18 ) |= (1 << 15);