28335的IO口能不能像32或者51那样并行操作GPIOx=0xFF呢;只能用xintf吗?谢谢啦

2019-03-24 09:31发布

如题,最近要帮师兄做毕业设计。1)28335做数据采样并且驱动一块TFTP液晶将处理的数据显示出来,       由于我用的屏是并口屏,我需要一种28335并行传输数据的方法,希     望通用GPIO口也可以这样操作,XINTF我没用过。。。真心觉得用     DSP驱动液晶好麻烦啊,没有335的液晶驱动库,得自己慢慢移植2)而且XINTF规定16or32位的,对于一些特殊的并行外设,如果地址     线和数据线都不是28335的XINTF规范,如果说是7位的数据线,那       岂不是不匹配了?该怎么处理啊?

    谢谢各位。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
jonny0811
1楼-- · 2019-03-25 07:05
nemo1991 发表于 2016-3-8 09:18
http://bbs.eeworld.com.cn/thread-458434-1-1.html

来了,谢谢版主啊,版主有没有用过xintf去写外设呢?
bkn1860
2楼-- · 2019-03-25 09:20
 精彩回答 2  元偷偷看……
jonny0811
3楼-- · 2019-03-25 12:31
bkn1860 发表于 2016-3-8 17:01
28335驱动TFT需要一个驱动IC,比如RA8875、SSD1963这类的。这时候驱动液晶用xintf更方便一些,如果你用IO口 ...

我就是希望用xintf的,但主要是我没用过,我那天配置了一下,但是配置完之后,数据写不出去,估计是我配置的过程中少了些什么步骤呢。麻烦您看一下嘛,如果配置正常的话,程序跑起来D0口是会输出方波的,但是我用示波器什么也看不到,led灯在交替闪烁,说明程序是跑起来的了。贴出来的程序,我就是这样子配置的
void main(void)
{
          short temp=0;
          InitSysCtrl();
          DINT;
          IER=0x0000;
          IFR=0x0000;
          InitPieCtrl();
          InitPieVectTable();
   initledgpio();
                  init_zone7();
             LED1off;
     LED2off;
        while(1)
        {
                 temp++;
         if(temp==1)
                 {
       uint16* p=(uint16*)0x20000
       *p=0x00000001;
                             LED1on;
                       LED2off;
                 }
         if(temp==2)
                  {
                              temp=0;
        uint16* p=(uint16*)0x20000
       *p=0x00000001;
                             LED1off;
                       LED2on;
                  }
           delay(10000);
        }
}
void init_zone7(void)
{
     EALLOW;
            SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;
    InitXintf16Gpio();
    XintfRegs.XINTCNF2.bit.XTIMCLK = 0;
    XintfRegs.XINTCNF2.bit.WRBUFF = 3;
    XintfRegs.XINTCNF2.bit.CLKOFF = 0;
    XintfRegs.XINTCNF2.bit.CLKMODE = 0;
    XintfRegs.XTIMING7.bit.XWRLEAD = 1;//写建立等待状态周期=1XTIMCLK
    XintfRegs.XTIMING7.bit.XWRACTIVE = 2;//写激活等待周期=2XTIMCLK
    XintfRegs.XTIMING7.bit.XWRTRAIL = 1;//写追踪等待周期=1XTIMCLK
    XintfRegs.XTIMING7.bit.XRDLEAD = 1;//读建立等待状态周期=1XTIMCLK
    XintfRegs.XTIMING7.bit.XRDACTIVE = 3;//读激活等待周期=3XTIMCLK
    XintfRegs.XTIMING7.bit.XRDTRAIL = 0;//读追踪等待周期=0XTIMCLK
    XintfRegs.XTIMING7.bit.X2TIMING = 0;
    XintfRegs.XTIMING7.bit.USEREADY = 0;
    XintfRegs.XTIMING7.bit.READYMODE = 0;
    // 1,1 = x16 数据线(采用)
    // 0,1 = x32 数据线
    XintfRegs.XTIMING7.bit.XSIZE = 3;
    EDIS;
   //占用N+1个指令周期
   asm(" RPT #7 || NOP");
}
bkn1860
4楼-- · 2019-03-25 13:25
uint16* p=(uint16*)0x20000  少了一个0,地址应该是0x20 0000
jonny0811
5楼-- · 2019-03-25 13:49
 精彩回答 2  元偷偷看……
bkn1860
6楼-- · 2019-03-25 19:15
你把数据写入之后数据是不会长期在IO保持的,你需要用示波器触发功能看端口有没有数据发送出来。

一周热门 更多>

相关问题

    相关文章