RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE); //Configure PC.12 as output push-pull (LED)// GPIO_WriteBit(GPIOA,GPIO_Pin_12,Bit_SET); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); //SPI1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); //SPI1 SS GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); //Initialize the SPI1 according to the SPI_InitStructure members */ SPI_InitTypeDef SPI_InitStructure; SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(SPI1, &SPI_InitStructure); SPI_Cmd(SPI1 , ENABLE); Main //SPI1 Senden 1 //Aufwachen myDelay(1360000); GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_RESET); //SS auf low 3. SPI_I2S_SendData(SPI1, 0x9400); myDelay(100); SPI_I2S_SendData(SPI1, 0x0000); myDelay(1360); //Buffer!! GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_SET); //SS auf high 5. myDelay(136000); //Delay 6. //Senden ADCC instruction GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_RESET); //SS auf low 7. SPI_I2S_SendData(SPI1, 0x9400); myDelay(100); SPI_I2S_SendData(SPI1, 0x0000); myDelay(13600); //Buffer!! myDelay(136000); //Delay 10. GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_SET); //SS auf high 11. myDelay(1360); //12. GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_RESET); //SS auf low 13. SPI_I2S_SendData(SPI1, 0x8000); myDelay(100); SPI_I2S_SendData(SPI1, 0x0000); myDelay(13600); //Buffer!! result = SPI_I2S_ReceiveData(SPI1); GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_SET); //SS auf high 16. GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_RESET); //SS auf low 19. SPI_I2S_SendData(SPI1, 0x9000); myDelay(100); SPI_I2S_SendData(SPI1, 0x0000); myDelay(13600); //Buffer!! GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_SET); //SS auf high 21.