TI论坛
直播中

吕聪

7年用户 166经验值
私信 关注
[问答]

LM3S9B92通过EPI外接铁电SRAM FM22L16读写数据错误

         int main(void)
[
   //================= 系统初始化 =================
   SysCtlClockSet(SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                  SYSCTL_XTAL_16MHZ); //配置系统时钟为80MHz
   SysCtlPeripheralEnable(SYSCTL_PERIPH_EPI0); //使能EPI模块
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);//使能GPIO模块
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ);
//================== 配置GPIO为EPI=================
    GPIOPinConfigure(GPIO_PH3_EPI0S0);
    GPIOPinConfigure(GPIO_PH2_EPI0S1);
    GPIOPinConfigure(GPIO_PC4_EPI0S2);
    GPIOPinConfigure(GPIO_PC5_EPI0S3);
    GPIOPinConfigure(GPIO_PC6_EPI0S4);
    GPIOPinConfigure(GPIO_PC7_EPI0S5);
    GPIOPinConfigure(GPIO_PH0_EPI0S6);
    GPIOPinConfigure(GPIO_PH1_EPI0S7);
    GPIOPinConfigure(GPIO_PE0_EPI0S8);
    GPIOPinConfigure(GPIO_PE1_EPI0S9);
    GPIOPinConfigure(GPIO_PH4_EPI0S10);
    GPIOPinConfigure(GPIO_PH5_EPI0S11);
    GPIOPinConfigure(GPIO_PF4_EPI0S12);
    GPIOPinConfigure(GPIO_PG0_EPI0S13);
    GPIOPinConfigure(GPIO_PG1_EPI0S14);
    GPIOPinConfigure(GPIO_PF5_EPI0S15);
    GPIOPinConfigure(GPIO_PJ0_EPI0S16);
    GPIOPinConfigure(GPIO_PJ1_EPI0S17);
    GPIOPinConfigure(GPIO_PJ2_EPI0S18);
    GPIOPinConfigure(GPIO_PJ3_EPI0S19);
    GPIOPinConfigure(GPIO_PJ4_EPI0S28);
    GPIOPinConfigure(GPIO_PJ5_EPI0S29);
    GPIOPinConfigure(GPIO_PJ6_EPI0S30);
    GPIOPinConfigure(GPIO_PG7_EPI0S31);


GPIOPinTypeEPI(GPIO_PORTC_BASE, EPI_PORTC_PINS);
    GPIOPinTypeEPI(GPIO_PORTE_BASE, EPI_PORTE_PINS);
    GPIOPinTypeEPI(GPIO_PORTF_BASE, EPI_PORTF_PINS);
    GPIOPinTypeEPI(GPIO_PORTG_BASE, EPI_PORTG_PINS);
    GPIOPinTypeEPI(GPIO_PORTH_BASE, EPI_PORTH_PINS);
    GPIOPinTypeEPI(GPIO_PORTJ_BASE, EPI_PORTJ_PINS);
//================== EPI配置 ===================
EPIModeSet(EPI0_BASE, EPI_MODE_HB16); //Flash + SRAM使用HB8模式
EPIDividerSet(EPI0_BASE, 1); //波特率等于系统时钟/2
EPIConfigHB16Set(EPI0_BASE,
                EPI_HB16_MODE_ADMUX | //使用ADMUX子模式,地址/数据总线复用子模式
                EPI_HB16_WRWAIT_0   | //无写等待态
                EPI_HB16_RDWAIT_0   | //无读等待态
                EPI_HB16_WORD_ACCESS| //使用字访问模式
                EPI_HB16_CSCFG_ALE , //使用ALE配置,EPI0S30用作ALE,EPI0S26、27则由访问的地址确定
                   0); //无使用FIFO,无需设置
EPIAddressMapSet(EPI0_BASE,
                 EPI_ADDR_RAM_SIZE_16MB | //设置片外SRAM空间为16MB
                 EPI_ADDR_RAM_BASE_6); //设置自外SRAM的映射空间基地址为0x60000000
//==============================================
   while(HWREG(EPI0_BASE + EPI_O_STAT) &  EPI_STAT_INITSEQ)
   [
   ]
   
/*   
HWREGH(0x60000000)=0x0000;
HWREGH(0x60000001)=0x1111;
HWREGH(0x60000002)=0x2222;
HWREGH(0x60000003)=0x3333;
HWREGH(0x60000004)=0x4444;
HWREGH(0x60000005)=0x5555;
*/
//HWREGH(0x60000002)=0x2222;
/*
a=HWREGH(0x60000000);
b=HWREGH(0x60000001);
c=HWREGH(0x60000002);
d=HWREGH(0x60000003);
e=HWREGH(0x60000004);
f=HWREGH(0x60000005);
*/
c=HWREGH(0x60000004);
   while(1)
   [
   ]
   
]
读出的数据不对!!!!!!         

回帖(6)

吕聪

2020-4-13 09:20:11
呵呵  已经解决  
举报

朱虹博

2020-4-13 09:27:25
引用: harrysummer 发表于 2020-4-13 11:51
呵呵  已经解决  

楼主分享一下原因呗。
举报

周莹

2020-4-13 09:46:23
引用: Emily1225 发表于 2020-4-13 11:58
楼主分享一下原因呗。

楼主能不能分享下具体出问题的现象(比如数据读出来怎么不对),以及问题是如何解决的?
举报

吕聪

2020-4-13 10:00:55
引用: vmmjuwy 发表于 2020-4-13 12:17
楼主能不能分享下具体出问题的现象(比如数据读出来怎么不对),以及问题是如何解决的?

有2个问题  写入数据 不能用HWREGH(0x60000000)=0X1111;  HWREGH()写数据有范围的了
          读入数据也不能用a=HWREGH(0x60000000);
现在主要是向FM22L16     0x00000---0x3FFFF全部写入0XFFFF时候比较慢  快了写如的数据都不对  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分