程序
#include "DSP28x_Project.h"
/************************************
//函数声明
************************************/
void Gpio_select(void);
/************************************
// GPIO功能配置
************************************/
void Gpio_select(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;//GPIO0/EPWM1A用作GPIOO
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0;//GPIO2/EPWM2A用作GPIO2
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0;//...用作GPIO3
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0;//...用作GPIO4
GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0;//...用作GPIO5
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0;//...用作GPIO6
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0;//...用作GPIO7
GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;//...用作GPIO12
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0;//...用作GPIO16
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 0;//...用作GPIO8
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 0;//...用作GPIO29
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;//...用作GPIO1(LED1,指示程序运行)
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;//不使能GPIO0内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO2 = 1;//不使能GPIO2内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO3 = 1;//不使能GPIO3内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1;//不使能GPIO4内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO5 = 1;//不使能GPIO5内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO6 = 1;//不使能GPIO6内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO7 = 1;//不使能GPIO7内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO12 = 1;//不使能GPIO12内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO16 = 1;//不使能GPIO16内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO28 = 1;//不使能GPIO28内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO29 = 1;//不使能GPIO29内部上拉
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1;//不使能GPIO1内部上拉(LED1,指示程序运行)
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO2 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO3 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO4 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO5 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO6 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO7 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO12 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO16 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO28 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO29 = 1; //作为输出
GpioCtrlRegs.GPADIR.bit.GPIO1 = 1; //作为输出(LED1,指示程序运行)
EDIS;
}
/************************************
//主函数
************************************/
void main(void)
{
InitSysCtrl();
Gpio_select();
DINT;//数据类型 32位整数
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
for(;;)
{
GpioDataRegs.GPADAT.bit.GPIO0 = 1;//GPIO0数据
GpioDataRegs.GPADAT.bit.GPIO2 = 1;//GPIO2数据
GpioDataRegs.GPADAT.bit.GPIO3 = 1;//GPIO3数据
GpioDataRegs.GPADAT.bit.GPIO4 = 1;//GPIO4数据
GpioDataRegs.GPADAT.bit.GPIO5 = 1;//GPIO5数据
GpioDataRegs.GPADAT.bit.GPIO6 = 1;//GPIO6数据
GpioDataRegs.GPADAT.bit.GPIO7 = 1;//GPIO7数据
GpioDataRegs.GPADAT.bit.GPIO12 = 1;//GPIO12数据
GpioDataRegs.GPADAT.bit.GPIO16 = 1;//GPIO16数据
GpioDataRegs.GPADAT.bit.GPIO28 = 1;//GPIO28数据
GpioDataRegs.GPADAT.bit.GPIO29 = 1;//GPIO29数据
GpioDataRegs.GPADAT.bit.GPIO1 = 0;//GPIO1数据(LED1,指示程序运行,低电平点亮)
}
}
测试数据
测试序号 1
测试时间 2010年5月14日
测试程序 IO口全部置高电平
测试条件 JTAG连接,断开其它运用电路
测试结果
IO口 理论电压 测试电压 结果
0 3.3 1.06 ×
2 3.3 3.24 √
3 3.3 0.79 ×
4 3.3 3.24 √
5 3.3 0.52 ×
6 3.3 3.24 √
7 3.3 0.26 ×
12 3.3 3.24 √
16 3.3 3.23 √
28 3.3 0.28 ×
29 3.3 3.24 √
1 3.3 3.23 √
请问:
程序有问题吗?为什么0、3、5、7、28脚测试结果不正常? |