void SPIx_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设备使能
}
BR[2:0] NEOPG+SimSun;">:波特率控制 NEOJH+ArialMT;">(Baud rate control) NEOPG+SimSun;">位 NEOJH+ArialMT;">5:3
NEOJH+ArialMT;">000 NEOPG+SimSun;">: NEOJH+ArialMT;">f PCLK /2 001 NEOPG+SimSun;">: NEOJH+ArialMT;">f PCLK /4 010 NEOPG+SimSun;">: f PCLK /8 011 : f PCLK /16
100 : f PCLK /32 101 : f PCLK /64 110 : f PCLK /128 111 : f PCLK /256
当通信正在进行的时候,不能修改这些位。
|