OpenEdv-开源电子网

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

MINI版SPI实验

[复制链接]

16

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2013-11-13
在线时间
0 小时
发表于 2013-11-27 21:35:44 | 显示全部楼层 |阅读模式
void SPI_Flash_Init(void)
{

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;  //SPI CS
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //复用推挽输出
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);//


上面的代码是SPI实验中的端口初始化,感觉好像有一点点问题哈,先说说我的理解:由MINI版原理图可知,PA2上接的是W25X16、PA3上接的是SD卡、应该是PC4上接的是两个无线模块,也就是说这三个引脚分别是这几个SPI模块的片选信号,引脚只是作为普通的IO口使用。第一个问题:这里是否可以设置成推挽输出?。再就是这里的PA4是根本就没有用到啊!!是不是应该再加上如下代码,并且开启GPIOC的时钟。

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure); 
GPIO_SetBits(GPIOC,GPIO_Pin_4);

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

使用道具 举报

25

主题

157

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-11-24
在线时间
5 小时
发表于 2013-11-27 21:49:36 | 显示全部楼层
void SPI_Flash_Init(void)
{
RCC->APB2ENR|=1<<2;       //PORTA时钟使能      
//这里 
GPIOA->CRL&=0XFFF000FF; 
GPIOA->CRL|=0X00033300;//PA2.3.4 推挽      
GPIOA->ODR|=0X7<<2;    //PA2.3.4上拉
SPIx_Init();    //初始化SPI
}  

我的MINi怎是这个程序啊
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-11-27 22:11:55 | 显示全部楼层
GPIO_Mode_Out_PP本身就是推挽输出。复用推挽输出应该是GPIO_Mode_AF_PP
回复 支持 反对

使用道具 举报

16

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2013-11-13
在线时间
0 小时
 楼主| 发表于 2013-11-27 22:24:44 | 显示全部楼层
回复【3楼】ricefat:
---------------------------------
你说得对,我值光看注释了,但是重点不在这儿,重点是PA4与PC4
回复 支持 反对

使用道具 举报

16

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2013-11-13
在线时间
0 小时
 楼主| 发表于 2013-11-27 22:26:52 | 显示全部楼层
回复【2楼】noname:
---------------------------------
你这是寄存器版本的,其实都一样,我看错了,他的代码是对的,只不过注释写错了。但是那个PA4、、、、求解!
回复 支持 反对

使用道具 举报

25

主题

157

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-11-24
在线时间
5 小时
发表于 2013-11-27 22:29:03 | 显示全部楼层
回复【5楼】黑小子mxx:
---------------------------------
你的程序是从那儿下的?我怎找不到
回复 支持 反对

使用道具 举报

16

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2013-11-13
在线时间
0 小时
 楼主| 发表于 2013-11-27 22:30:31 | 显示全部楼层
回复【6楼】noname:
---------------------------------
光盘里有啊,分为寄存器版本和库函数版本,其实本质都是操作寄存器,我只是举得库函数看起来舒服点儿,寄存器的看着累眼睛
回复 支持 反对

使用道具 举报

25

主题

157

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-11-24
在线时间
5 小时
发表于 2013-11-27 22:49:04 | 显示全部楼层
回复【7楼】黑小子mxx:
---------------------------------
店家就没给我光盘,说忘记发了,我到网上怎没找到呢
回复 支持 反对

使用道具 举报

18

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2013-2-4
在线时间
214 小时
发表于 2013-11-27 23:24:18 | 显示全部楼层
回复【8楼】noname:
---------------------------------
http://www.openedv.com/posts/list/13912.htm

置顶了的。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 19:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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