|
楼主 |
发表于 2010-3-28 11:17:21
|
显示全部楼层
SPI的初始化
void spi1_configuration(void)
{
RCC->APB2ENR|=(1<<2)|(1<<3); //PORTB&PORTA时钟使能
RCC->APB2ENR|=1<<12; //SPI1时钟使能 SPI1在第12位
GPIOA->CRL&=0XFFF00000;
GPIOA->CRL|=0XBBB00000;
GPIOA->ODR|=0X00E0; //PA5,6,7
GPIOB->CRL&=0XF0FFFFFF;
GPIOB->CRL|=0X03000000; //PB6->SD_CS OUTPUT
GPIOB->ODR|=0X0040;
SPI1->CR1|=0<<10;//全双工模式,BIT_10 = 0
SPI1->CR1|=1<<9; //软件nss管理,BIT_9 = 1
SPI1->CR1|=1<<8; //BIT_8 = 1
SPI1->CR1|=1<<2; //SPI主机模式
SPI1->CR1|=0<<11;//8位数据格式
SPI1->CR1|=1<<1; //空闲模式下SCK为1 CPOL=1
SPI1->CR1|=1<<0; //数据采样从第二个时间边沿开始,CPHA=1
SPI1->CR1|=6<<3; //Fsck=Fcpu/256
SPI1->CR1|=0<<7; //MSBfirst
SPI1->CR1|=1<<6; //SPI设备使能
} |
|