|
楼主 |
发表于 2013-12-17 09:20:57
|
显示全部楼层
是這樣喔!
抱歉,剛開始學習
因為我不清楚spi的送資料過程~
請問一下~我送資料有問題,還是設定腳位有問題
因為要7個bit我不知道要怎麼設定?
void write_byte(u4 add1,u8 val)
{
SPI_I2S_SendData(SPI1,add1<<4|val|add2<<8);
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
}
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
void SPI_Configuration(void)//饜离SPI諉諳
{
SPI_InitTypeDef SPI_InitStructure;
// SPI1配置
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex ;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master ;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b ;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low ;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge ;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft ;
//SPI波特率分頻設置:4M
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256 ;
//SPI設置成LSB模式
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB ;
SPI_InitStructure.SPI_CRCPolynomial = 7 ;
SPI_Init( SPI1, &SPI_InitStructure ) ;
//?動SPI
SPI_Cmd(SPI1,ENABLE);
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//配置SPI1引腳:SCK, MISO and MOSI
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init( GPIOA, &GPIO_InitStructure );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init( GPIOB, &GPIO_InitStructure );
}
int main(void){
write_byte(0x3,0x00);
} |
|