OpenEdv-开源电子网

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

SPI2的SCK空闲电平问题

[复制链接]

20

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-3-24
在线时间
6 小时
发表于 2013-8-8 10:56:21 | 显示全部楼层 |阅读模式
         为啥我的SPI2的SCK改为空闲时是高电平后就不能通信了呢?低电平的时候正常,在改为高电平的时候也改为第二个时钟沿开始采样了,为什么不行呢


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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-8 10:59:58 | 显示全部楼层
回复【楼主位】chenjiawei7:
---------------------------------
这要看你的外部器件啊.
比如NRF,他就要求空闲时SCK为低电平,你改高电平就不能用.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-3-24
在线时间
6 小时
 楼主| 发表于 2013-8-8 11:04:03 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
...的确是2401,但是我看到的一个历程是设置的高电平,所以我就试了试高电平,结果不行。。
回复 支持 反对

使用道具 举报

20

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-3-24
在线时间
6 小时
 楼主| 发表于 2013-8-8 11:08:43 | 显示全部楼层
            

这是你的2401无线例程,但是也是空闲时高电平啊  ?
回复 支持 反对

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2013-8-8 11:17:31 | 显示全部楼层
4种bit时序,请对号入座。
于20150522停用该账号:http://www.microstar.club
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-8 11:20:58 | 显示全部楼层
回复【4楼】chenjiawei7:
---------------------------------
//初始化24L01的IO口
void NRF24L01_Init(void)
{
   RCC->APB2ENR|=1<<3;     //使能PORTB时钟      
  RCC->APB2ENR|=1<<5; //使能PORTD时钟
  RCC->APB2ENR|=1<<8; //使能PORTG时钟
//这里pb12和pd2拉高,是为了防止互相影响 .
//因为他们共用一个SPI口.   
GPIOB->CRH&=0XFFF0FFFF; 
GPIOB->CRH|=0X00030000; //PB12 推挽      
GPIOB->ODR|=1<<12;     //PB12上拉 防止W25X的干扰
   
GPIOD->CRL&=0XFFFFF0FF; 
GPIOD->CRL|=0X00000300; //PD2 推挽      
GPIOD->ODR|=1<<2;     //PD2上拉   禁止SD卡的干扰

GPIOG->CRL&=0X00FFFFFF; 
GPIOG->CRL|=0X33000000; //PG6 7 推挽      
GPIOG->CRH&=0XFFFFFFF0; 
GPIOG->CRH|=0X00000008; //PG8 输入      
GPIOG->ODR|=7<<6;     //PG6 7 8 上拉    

SPI2_Init();     //初始化SPI   
//针对NRF的特点修改SPI的设置
  SPI2->CR1&=~(1<<6);  //SPI设备失能
SPI2->CR1&=~(1<<1);  //空闲模式下SCK为0 CPOL=0
SPI2->CR1&=~(1<<0);  //数据采样从第1个时间边沿开始,CPHA=0  
SPI2->CR1|=1<<6;  //SPI设备使能

NRF24L01_CE=0;  //使能24L01
NRF24L01_CSN=1; //SPI片选取消      
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-8 11:21:14 | 显示全部楼层
看代码,请看仔细点,别看到一个函数就以为知道全部了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-15 10:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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