OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5156|回复: 8

新手疑问中 关于FSMC

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-21
在线时间
0 小时
发表于 2013-9-30 16:26:41 | 显示全部楼层 |阅读模式
最近在研究FSMC,但是网路上查FSMC几乎都是跟TFT-LCD有关的。小弟没有玩过LCD所以对于这类的程序就看不是很懂。
我想问问各位前辈,假设今天我想做一个功能,如下:同时把GPIOA的第5 6 7 8脚为1

那一般的话我可能会这样做
int main(void)
{
  RCC_Configuration();

  GPIO_Configuration();
 
  GPIO_WriteBit(GPIOA, GPIO_Pin_5, (BitAction)0x01);
  GPIO_WriteBit(GPIOA, GPIO_Pin_6, (BitAction)0x01);
  GPIO_WriteBit(GPIOA, GPIO_Pin_7, (BitAction)0x01);
  GPIO_WriteBit(GPIOA, GPIO_Pin_8, (BitAction)0x01);
}

但是程序与程序之间会有小小的延迟,所以这四只脚并不是同时为1
所以想请教前辈们,如果要用FSMC修改以上的程序,达到同时输出1,我该怎么做呢?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-9-30 17:26:08 | 显示全部楼层
回复【楼主位】kkboxkker1111:
---------------------------------
直接操作寄存器,一次性写入数据
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-9-30 20:54:27 | 显示全部楼层
程序是顺序执行的,直接在GPIO->ODR写入你要输出的值就好。
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-9-30 20:55:49 | 显示全部楼层
回复【楼主位】kkboxkker1111:
---------------------------------
另外FSMC只是一个控制器,用来操作外扩存贮器,和你说的功能并不是一回事、
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-10-1
在线时间
0 小时
发表于 2013-10-1 10:59:38 | 显示全部楼层
······BSRRH/L  或者 odr 寄存器就行了把····FSMC能控制gpio涅?步子到
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-21
在线时间
0 小时
 楼主| 发表于 2013-10-1 14:31:51 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
有想尝试用GPIOx->ODR 试试看,不过我可能举例没有提到,假设我今天是有RGB332的资料,用GPIO输出的话,会有delay,那么该怎么解决呢?
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-21
在线时间
0 小时
 楼主| 发表于 2013-10-1 14:34:12 | 显示全部楼层
回复【4楼】ricefat:
---------------------------------
了解,我想是我观念错误,不过我有个疑问,STM32接LCD时有使用FSMC,那么资料的传输是靠FSMC吗?

我现在想做一个利用FSMC来控制VGA讯号输出(RGB332),这样可以使用FSMC吗?还是使用GPIO就好?
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-21
在线时间
0 小时
 楼主| 发表于 2013-10-1 14:42:05 | 显示全部楼层
回复【5楼】大爹路西法:
---------------------------------
所以我程序改成
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_5;
GPIOA->BSRR = GPIO_PIN_6;
GPIOA->BSRR = GPIO_PIN_7;
这样吗?

若是使用ODR
那我的PIN 1 2 8 9 ...15 这样没有用到是不是就不能使用ODR?
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-10-1 21:53:07 | 显示全部楼层
回复【8楼】kkboxkker1111:
---------------------------------
你这样还是按顺序执行啊,直接GPIOA->ODR |=0x00F0即可
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 03:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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