6894|10

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于STM32的IO使用,请教香版 [复制链接]

我用的MCU为STM32F103ZET6  144pin

用了FSMC挂NAND FLASH

部分接线图如下

FSMC的读写信号,还有数据为D2,D3,以及BAND2的片选分别为PD口的PD4、PD5、PD0、PD1、PD7。这里我想用PD6作为IO来使用点亮LED

我在软件里配制如下

//FSMC功能复用
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);  //使能GPIOD时钟
  
/*-- GPIO Configuration ------------------------------------------------------*/
/* CLE, ALE, D0->D3, NOE, NWE and NCE2  NAND pin configuration  */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15 |  
                                 GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | 
                                 GPIO_Pin_7;           //选中管脚                        
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   //复用推挽输出

  GPIO_Init(GPIOD, &GPIO_InitStructure);  

//LED 配制
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6;           //选中管脚                        
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;   //开漏输出

  GPIO_Init(GPIOD, &GPIO_InitStructure);  

------------
我按这样配制了,不能正常工作,当LED的引脚换到别的IO时可以正常,前面说过FSMC没有用到的引脚可以当作IO来用,不知道该用软件如何配制才能正常

请香版指点一下,谢谢。。。
此帖出自stm32/stm8论坛

最新回复

                                 使能NANDPD6当IO不行、换别的IO行。。。。   详情 回复 发表于 2009-5-19 16:16
点赞 关注
 

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

补充一下

我配制FSMC 读写NAND FLASH能正常

如果加这段程序

//LED 配制
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6;           //选中管脚                        
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;   //开漏输出

  GPIO_Init(GPIOD, &GPIO_InitStructure);  

整个程序就不能运行。。。。未知状态。
此帖出自stm32/stm8论坛
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

怎么个不能运行

                                 是LDC点不亮,还是NAND Flash读写不正确。
此帖出自stm32/stm8论坛
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

4
 

PD6对应NAND模块的NWAIT输入引脚,不用复用功能时也不能当普

PD6对应NAND模块的NWAIT功能,当使能了FSMC的NAND功能后,从下表可以看出,NWAIT是输入功能;再依据管脚的输出配置图,输入功能始终是连接到外部引脚,也就是说把PD6配置为普通的输出模式时,不能断开它与FSMC模块的连接,所以当使能了FSMC以后,即使不用NWAIT功能,PD6不能再做普通的IO功能。

此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 

是LED常亮

本来是做的每秒闪一次

用别的IO可以正常

用PD6就不行。。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 

哦,原来是这样。。。。。手册看得不仔细

发现一个问题

当配制PD6为输出模式后,整个IO好像都乱了

LED一直亮

JTAG也用不了了。。。

程序下不了也擦不了

后来是从系统FLASH启动用内部的BOOT把片内擦除才恢复过来。

还好板上留了启动方式选择。。。

谢谢4楼的浪淘沙兄。。。
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 

PD6是双向口

PD6是双向口,可以作为IO使用

可能是使能了FSMC后就不能当输出了吧。。。
此帖出自stm32/stm8论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

8
 

对,使能了FSMC后PD6就不能当输出了

                                 内部原理就是我在4楼贴的图和说明。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 

PD6作为IO

                                   PD6作为IO,应该没有问题,记得我曾经试过。
此帖出自stm32/stm8论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

10
 

9楼怎么做的?原理上好像讲不通,除非不同时用NAND接口

                                 不同时用NAND接口时可以随意改变PD6,但使用NAND时PD6应该按照NWAIT的意义输出吧?
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 

反正我是试了不行,

使能NAND

PD6当IO不行、

换别的IO行。。。。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表