微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > void SPI1_SetSpeed(u8 SPI_BaudRatePrescaler)

void SPI1_SetSpeed(u8 SPI_BaudRatePrescaler)

时间:10-02 整理:3721RD 点击:
void SPI1_SetSpeed(u8 SPI_BaudRatePrescaler)
{
  assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_BaudRatePrescaler));
        SPI1->CR1&=0XFFC7;//??3-5??á?£?ó?à′éè??2¨ì??ê
        SPI1->CR1|=SPI_BaudRatePrescaler;        //éè??SPI1?ù?è
        SPI_Cmd(SPI1,ENABLE); //ê1?üSPI1
}
有大神知道这里的assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_BaudRatePrescaler));是用来干什么的吗?

assert_param是一个宏定义,在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。这里应该是检测SPI_BaudRatePrescaler这个参数是否有效。具体可以上网搜搜。

SPI_BaudRatePrescaler是指的什么呢

typedef struct
{
   uint16_t SPI_Direction;
   uint16_t SPI_Mode;  
   uint16_t SPI_Data Size;  
   uint16_t SPI_CPOL;  
   uint16_t SPI_CPHA;  
   uint16_t SPI_NSS;   
   uint16_t SPI_Baud Rate Prescaler;   
   uint16_t SPI_First Bit;     
   uint16_t SPI_CRCPolynomial;  
}SPI_Init Type Def;
是串口初始化的一个参数,SPI_Baud Rate Prescaler 就是设置 SPI 波特率预分频值也就是决定 SPI 的时钟的参数,从不分频道 256 分频 8 个可选值,这里应该就是验证这个参数是不是这八个可选值。

SPI初始化的参数

66666

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top