打印

TMS320F28027的GPIO输出不正常?

[复制链接]
4226|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cqkxtam|  楼主 | 2010-5-16 22:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序
#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脚测试结果不正常?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:cqkxtam

12

主题

44

帖子

1

粉丝