2994|3

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

提一个我遇到的稀奇现象 [复制链接]

                                 最近使用STM32F103ZE做项目,然后由于需要使用FSMC外扩了一个SRAM,使用了SRAM3.由于使用的是8位的SRAM,于是在启动文件stm32f10x_vector.s中修改了相应的配置,并且把GPIOE中不使用的管脚定义为复位值。然后在原来的FSMC的数据线管脚上接了两个LED。现在的测试发现,在一些软件延时中接在GPIOE上的LED总是会出现一些异常,也就是莫名其妙的亮起,然后熄灭。一闪一闪的,知道延时结束。不清楚是怎么回事,不知道有没有人遇到过呢?
此帖出自stm32/stm8论坛

最新回复

                                 找到问题所在了,我在配置GPIOE的时候配置的有点问题,把不需要配置为PP模式的配位为PP模式了,而LED又正好接在了我配置了的这个GPIO上。所以每次读取外部SRAM的时候这个引脚虽然不起作用,但是被处理器默认置位了。所以LED就会亮一下!  详情 回复 发表于 2010-5-14 14:57
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
“在启动文件stm32f10x_vector.s中修改了相应的配置”
这个做法挺奇怪,不应该在这里进行配置。

可以参考:
1.配置GPIO为GPIO_Mode_Out_PP,只是示例
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

2.配置FSMC
  FSMC_Bank1->BTCR[4] = FSMC_DataAddressMux_Disable | FSMC_MemoryType_SRAM |
                        FSMC_MemoryDataWidth_8b | FSMC_WriteOperation_Enable |
                        FSMC_ExtendedMode_Disable | FSMC_AsyncWait_Disable;
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
; Enable FSMC clock

         LDR R0,= 0x00000114

         LDR R1,= 0x40021014

         STR R0,[R1]
                 

; Enable GPIOD, GPIOE, GPIOF and GPIOG clocks

         LDR R0,= 0x000001E0

         LDR R1,= 0x40021018

         STR R0,[R1]
   

; SRAM Data lines, NOE and NWE configuration
; SRAM Address lines configuration
; NOE and NWE configuration   
; NE3 configuration
; NBL0, NBL1 configuration


         LDR R0,= 0x44BB44BB

         LDR R1,= 0x40011400

         STR R0,[R1]




         LDR R0,= 0xBBBBB444

         LDR R1,= 0x40011404

         STR R0,[R1]




         LDR R0,= 0xB44444BB

         LDR R1,= 0x40011800

         STR R0,[R1]




         LDR R0,= 0x44444BBB

         LDR R1,= 0x40011804

         STR R0,[R1]




         LDR R0,= 0x44BBBBBB

         LDR R1,= 0x40011C00

         STR R0,[R1]
   


         LDR R0,= 0xBBBB4444

         LDR R1,= 0x40011C04

         STR R0,[R1]
   


         LDR R0,= 0x44BBBBBB

         LDR R1,= 0x40012000

         STR R0,[R1]



         LDR R0,= 0x44444B44

         LDR R1,= 0x40012004

         STR R0,[R1]      

         
; FSMC Configuration   
; Enable FSMC Bank1_SRAM Bank


        LDR R0,= 0x00001001

        LDR R1,= 0xA0000010

        STR R0,[R1]



        LDR R0,= 0x00000100

        LDR R1,= 0xA0000014

        STR R0,[R1]


我在启动码中这样子配置是不是也达到了你说的目的呢?这是我参照STM库文件中的一个SRAM例程修改的。
现在的问题我找到了,只是每次读取外部SRAM的时候才会导致LED亮,但是很奇怪的是我已经把该GPIO置位为复位值了,怎么还可以以PP模式驱动。也许还是没怎么搞明白,我继续查看一下。
此帖出自stm32/stm8论坛
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 找到问题所在了,我在配置GPIOE的时候配置的有点问题,把不需要配置为PP模式的配位为PP模式了,而LED又正好接在了我配置了的这个GPIO上。所以每次读取外部SRAM的时候这个引脚虽然不起作用,但是被处理器默认置位了。所以LED就会亮一下!
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表