OpenEdv-开源电子网

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

请教SPI中的SS输出控制

[复制链接]

4

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-9-16
在线时间
1 小时
发表于 2011-9-16 14:38:36 | 显示全部楼层 |阅读模式

请问如何才能使SPI中的SS位在MOSI开始传输时拉低,传输完成后自动拉高。

void SPI2_Init(void)

 RCC->APB2ENR|=1<<3;       //PORTB时钟使能  
 RCC->APB1ENR|=1<<14;      //SPI2时钟使能
    
 //这里只针对SPI口初始化
 GPIOB->CRH&=0X0000FFFF;
 GPIOB->CRH|=0XBBBB0000;//PB12.13.14.15复用     
 GPIOB->ODR|=0X0000F000;//PB12.13.14.15上拉

 SPI2->CR1 = //(1<<15)|
    (1<<14)|
    (1<<11)|
    (0x7<<3)|
    (1<<2);

 SPI2->CR2 = (1<<2);
 SPI2->CR1|=1<<6; //SPI设备使能 
}

经过以上初始化,SCK和MOSI传输都正常,但是SS位,一直为低。
如何配置才能让SPI硬件自动输出高低电平?

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-9-16 16:13:50 | 显示全部楼层
使能自动控制片选,应该就可以了.
如果你设置了还是不行,检查下电路吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-9-16
在线时间
1 小时
 楼主| 发表于 2011-9-16 16:29:44 | 显示全部楼层
我是用的开发板上的SPI2,电路应该没问题,软件控制SS位是可以的。
就是有点占用CPU,所以想用硬件自动控制SS位。
百度了下,好像很多人是说STM32的SPI,NSS位不能自动拉高。

我使能了SSOE位,用示波器观察PB12,确实没有输出,一直是低电平。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-9-16 16:52:16 | 显示全部楼层
不是吧?stm32有这个bug? 
你试试用上拉电阻.看能否拉高?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 22:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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