spi 设置speed

转载 2016年06月01日 15:22:39

//SPI 速度设置函数
//SpeedSet:
//SPI_SPEED_2   2分频   (SPI 12M    --sys 24M)
//SPI_SPEED_8   8分频   (SPI 3M     --sys 24M)
//SPI_SPEED_16  16分频  (SPI 1.5M    --sys 24M)
//SPI_SPEED_256 256分频 (SPI  905.6K --sys 24M)
void SPI1_SetSpeed(u8 SpeedSet)
{
         SPI1->CR1&=0XFFC7;//Fsck=Fcpu/256
     if(SpeedSet==SPI_SPEED_2)//二分频
     {
          SPI1->CR1|=0<<3;//Fsck=Fpclk/2=36Mhz 
     }else if(SpeedSet==SPI_SPEED_8)//八分频 
     {
          SPI1->CR1|=2<<3;//Fsck=Fpclk/8=9Mhz 
     }else if(SpeedSet==SPI_SPEED_16)//十六分频
     {
          SPI1->CR1|=3<<3;//Fsck=Fpclk/16=4.5Mhz
     }

    else      //256分频
     {
          SPI1->CR1|=7<<3; //Fsck=Fpclk/256=281.25Khz 低速模式
     }
     SPI1->CR1|=1<<6; //SPI设备使能   




//SPI 速度设置函数
//SpeedSet:
//SPI_BaudRatePrescaler_2   2分频   
//SPI_BaudRatePrescaler_8   8分频   
//SPI_BaudRatePrescaler_16  16分频  
//SPI_BaudRatePrescaler_256 256分频 
  
void SPI2_SetSpeed(u8 SPI_BaudRatePrescaler)
{
  assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_BaudRatePrescaler));
SPI2->CR1&=0XFFC7;
SPI2->CR1|=SPI_BaudRatePrescaler; //设置SPI2速度 
SPI_Cmd(SPI2,ENABLE); 



STM32 SPI时钟的问题

APB1的最高频率是36MHz,APB2的最高频率是72MHz,而PCLK1和PCLK2一般也默认配置为其最高工作频率36M和72M,如下表所示:

SPI1时钟由APB2时钟分频而来,可以选择2、4、8、16、32、64、128、256这几个分频系数。而手册规定STM32的SPI时钟最快是18MHz。对于STM32F103的SPI1接口时钟,由72M的PCLK2分频得到,所以分配系数大于等于4(72M/4 = 18M)。对于STM32F103的SPI2/3接口时钟,由36M的PCLK1分频得到,所以分配系数大于等于2(36M/2 = 18M)。
如果配置SPI1时选择了fPCLK/2的二分频选项,那么理论上SPI1的时钟将为36MHz,经过我们实际测量也确实为36MHz。但是这个频率大于手册中最快18Mhz的要求。如果大家追求高速率使用36MHz,建议大家一定要加强测试环节,同时不建议大家在工控产品等高可靠性的场合使用。
                             --摘自神舟STM32开发板手册

MFRC522应用详解

MFRC522是高度集成的非接触式(13.56MHz)读写卡芯片,此发送模块利用调制和调节的原理,并将它们完全集成到各种非接触式通信方法和协议中。它支持ISO14443A/MIFARE。关于电路的工作...
  • a827415225
  • a827415225
  • 2016年07月13日 20:16
  • 14997

MSP430 SPI总线详解

SPI总线系统是一种同步串行外设接口;是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越...
  • u011392772
  • u011392772
  • 2016年07月22日 15:59
  • 2534

SPI和UART的区别

SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 ...
  • anjiao_1989
  • anjiao_1989
  • 2015年07月19日 22:21
  • 3346

stm32的SPI设置步骤,SPI配置参数

 SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 四根线 MISO 主设备数据输入,从设备数据输出。 MOSI 主设备数据输出...
  • Openthedr
  • Openthedr
  • 2014年09月16日 21:10
  • 11755

关于STM8S使用硬件SPI收发问题

在调试STM8S的SPI时候,由于在学习板上
  • lan120576664
  • lan120576664
  • 2014年08月23日 20:44
  • 9578

STM32值SPI的使用及SPI初始化注意事项

在STM32F10x系列芯片中,虽然所拥有的SPI同步串口数量不相同,但是初始化的方法都是一样的。其中使用SPI时候我们回忆GPIO的使用,要注意6点,我们这里主要讲解一点。 根据系统对该不同功能的...
  • Cherish511842885
  • Cherish511842885
  • 2016年10月14日 11:00
  • 12739

stm32 SPI 收发数据

STM32-SPI使用 SPI知识: 1) 高速同步串行口。3~4线接口(CS ,CLK ,MOSI,MISO),收发独立、可同步进行。 2)SPI分为主从模式,主模式提供时钟和片选选择信号....
  • zc850463390zc
  • zc850463390zc
  • 2012年10月22日 17:26
  • 16991

STM32学习笔记之硬件SPI读写与极性设置

大家介绍SPI,用的是战舰的教程,文中标红的是特别注意看的地方主要是熟悉flash芯片的指令集,以及存储芯片扇区和块的理解,最重要的是擦除都是以扇区擦除的方式。 本节将利用SPI来实现对外部FLAS...
  • sinat_23338865
  • sinat_23338865
  • 2016年08月31日 21:54
  • 7208

linux基础之spi驱动程序理解

============================================ 作者:yuanlulu http://blog.csdn.net/yuanlulu 版权没有,但...
  • xqmoo8
  • xqmoo8
  • 2012年10月06日 16:57
  • 17515

USB、UART、SPI等总线速率

1. USB总线USB1.1: ——-低速模式(low speed):1.5Mbps ——-全速模式(full speed): 12Mbps USB2.0:向下兼容。增加了高速模式,最大速率...
  • ss343fd
  • ss343fd
  • 2017年02月05日 10:48
  • 1391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spi 设置speed
举报原因:
原因补充:

(最多只允许输入30个字)