OpenEdv-开源电子网

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

SPI................

[复制链接]

12

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2015-11-2
在线时间
4 小时
发表于 2015-11-25 13:45:32 | 显示全部楼层 |阅读模式
5金钱
SPI     PA5/6/7的端口失效,改用SPI2 不知如何修改设置   用寄存器设置
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

2254

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4486
金钱
4486
注册时间
2013-4-22
在线时间
337 小时
发表于 2015-11-25 14:01:39 | 显示全部楼层
#define GPIO_SPI2_SCLK          GPIOB
#define GPIO_Pin_SPI2_SCLK      GPIO_Pin_13  
#define GPIO_SPI2_MI           GPIOB
#define GPIO_Pin_SPI2_MI       GPIO_Pin_14
#define GPIO_SPI2_MO           GPIOB
#define GPIO_Pin_SPI2_MO       GPIO_Pin_15
#define GPIO_CS                 GPIOB
#define GPIO_Pin_CS             GPIO_Pin_12 
//------------------------------- SPI2 ????????±??¤????
#define SPI2_CS_LOW     GPIO_ResetBits(GPIO_CS, GPIO_Pin_CS)
#define SPI2_CS_HIGH       GPIO_SetBits(GPIO_CS, GPIO_Pin_CS)
void SPI2_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef  SPI_InitStructure;

//spi?±??????·???sys.c??
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );//PORTB?±?????? 
RCC_APB1PeriphClockCmd( RCC_APB1Periph_SPI2,  ENABLE );//SPI2?±?????? 
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_SPI2_SCLK;//CLK 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIO_SPI2_SCLK, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_SPI2_MI;//MISO 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIO_SPI2_MI, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_SPI2_MO;//MOSI 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIO_SPI2_MO, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CS;//????
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIO_CS, &GPIO_InitStructure);
SPI2_CS_HIGH;
   
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //?è??SPI???ò?ò?????ò??????????:SPI?è???????????ò?????¤
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //?è??SPI?¤×÷????:?è?????÷SPI
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //?è??SPI???????ó??:SPI·???????8?????á??
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //?????????±????????×???????????
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //?????????±????????????±????¨?????ò??????????±????ù
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSS???????????¨NSS???????????í???¨????SSI???????í:????NSS??????SSI??????
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64; //?¨???¨?????¤·???????:?¨?????¤·???????4  9M?÷??4·???   2.25M
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //???¨??????????MSB??????LSB??????:??????????MSB??????
SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC?????????à????
SPI_Init(SPI2, &SPI_InitStructure); //?ù??SPI_InitStruct?????¨???????????????èSPIx?????÷

SPI_Cmd(SPI2, ENABLE);
}
这个初始化100%没有问题
回复

使用道具 举报

12

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2015-11-2
在线时间
4 小时
 楼主| 发表于 2015-11-26 11:05:37 | 显示全部楼层
用寄存器设置
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-26 23:18:26 | 显示全部楼层
回复【3楼】ABCD1234:
---------------------------------
自己动手.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 08:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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