搜索
bottom↓
回复: 4

Stm32f103vet6 fsmc读取dm9000cep id 总出错 死循环 求指导 不胜感激

[复制链接]

出0入0汤圆

发表于 2013-3-21 21:16:35 | 显示全部楼层 |阅读模式
Stm32f103vet6 + dm9000cep 利用fsmc总线方式读取id时总是进入一个hardFault_Handler(void)的死循环中 我的原理图的连接方式如下:
CMD--PD13(FSMC_A18)
INT--PD11(FSMC_A16)
IOW--PD5(FSMC_NWE)
IOR--PD4(FSMC_NOE)
CS---PD7(FSMC_NE1
RST—NRST
D0---PD14(FSMC_D0)
D1---PD15(FSMC_D1)
D2---PD0(FSMC_D2)
D3---PD1(FSMC_D3)
D4---PE7(FSMC_D4)
D5---PE8(FSMC_D5)
D6---PE9(FSMC_D6)
D7---PE10(FSMC_D7)
D8---PE11(FSMC_D8)
D9---PE12(FSMC_D9)
D10---PE13(FSMC_D10)
D11---PE14(FSMC_D11)
D12---PE15(FSMC_D12)
D13---PD8(FSMC_D13)
D14---PD9(FSMC_D14)
D15---PD10(FSMC_D15)

FSMC 的配置部分代码如下:

GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE , ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|  GPIO_Pin_15 ;
GPIO_Init(GPIOE, &GPIO_InitStructure);

//cmd 复用推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_Init(GPIOD, &GPIO_InitStructure);

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2013-3-21 21:17:16 | 显示全部楼层
         /*!< NOE and NWE configuration */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
GPIO_Init(GPIOD, &GPIO_InitStructure);

//NE1        
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_Init(GPIOD, &GPIO_InitStructure);

//INT       
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOD, &GPIO_InitStructure);


FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef  FSMC_NORSRAMTimingInitStructure;

        /*-- FSMC Configuration ------------------------------------------------------*/
        /*----------------------- SRAM Bank 1 ----------------------------------------*/
        /* FSMC_Bank1_NORSRAM4 configuration */
        FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupTime = 0X05;
        FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTime = 0;
        FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 0X07;
        FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAroundDuration = 0;
        FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 0;
        FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 0;
        FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_D;


FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2;
        FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
        FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;
        FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
        FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
        FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
        FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
        FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
        FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
        FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
        FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
        FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
        FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct= &FSMC_NORSRAMTimingInitStructure;
        FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct= &FSMC_NORSRAMTimingInitStructure;

        FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

        FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM2, ENABLE);

出0入0汤圆

发表于 2013-4-10 10:30:35 | 显示全部楼层
原因很多,本例可能性较大是 IO配置出错,软件IO与硬件设计不匹配。
读数据时,由于IO配置出错,导致内存溢出,数据越位。

DM9000CEP资了下载地址:
http://pan.baidu.com/share/link?shareid=501050&uk=2553229069

DAVICOM 中国指定代理 DM9000AEP DM9000CEP全程技术支持。
STM32+DM9000CEP uIP,LwIP协议移植支持。
Jonny.chu@qftek.com  Tel:13554902206



出0入0汤圆

发表于 2013-4-20 18:00:45 来自手机 | 显示全部楼层
每次看到库函数就头痛,程序太长了。所以习惯操作寄存器,起码少打很多字。

出0入0汤圆

发表于 2015-7-6 21:25:09 | 显示全部楼层
qftek 发表于 2013-4-10 10:30
原因很多,本例可能性较大是 IO配置出错,软件IO与硬件设计不匹配。
读数据时,由于IO配置出错,导致内存溢 ...

能否提供下DM9000CEP的例程啊,你传的好多资料连接都不在了,谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 22:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表