Example #1
0
File: mspi.c Project: pandc/unitek
uint8_t MSPI_Write(uint8_t data)
{
	SPI_I2S_ClearITPendingBit(SPIx, SPI_I2S_IT_RXNE);
	sema_clear(xSemaSpi);
	SPI_I2S_ITConfig(SPIx,SPI_I2S_IT_RXNE,ENABLE);
	SPI_I2S_SendData(SPIx, data);
	xSemaphoreTake(xSemaSpi,portMAX_DELAY);
	return spi_rxdata;
}
Example #2
0
void SPI2_IRQHandler(void)
{
	OSIntEnter();
	if(SPI_I2S_GetITStatus(SPI2, SPI_IT_CRCERR) == SET)
	{
		SPI_I2S_ClearITPendingBit(SPI2, SPI_IT_CRCERR);
		//MotorCommErr++;
	}
	
	if(SPI_I2S_GetITStatus(SPI2, SPI_I2S_IT_OVR) == SET)
	{
		SPI_I2S_ClearITPendingBit(SPI2, SPI_I2S_IT_OVR);
		//MotorCommErr++;
	}	
	
	if(SPI_I2S_GetITStatus(SPI2, SPI_IT_MODF) == SET)
	{
		SPI_I2S_ClearITPendingBit(SPI2, SPI_IT_MODF);
		//MotorCommErr++;
	}
	OSIntExit();
}
void SPI1_IRQHandler()//ПРЕРЫВАНИЕ ПО SPI(НАДО ЕЩЕ ДОБАВИТЬ ОПРОСНЫЙ СИГНАЛ И СТРОКУ ОШИБКИ.ТАК ЖЕ НУЖНА ОБРАБОТКА КАЖДОГО БАЙТА)
{
	 if(SPI_I2S_GetITStatus(SPI1, SPI_I2S_IT_RXNE)==SET)
	
	
	read_spi(SPI1,SPIBuffer);
		

	
	
	
	
	
    //ЗДЕСЬ БУДЕТ НЕВЕДОМАЯ ФИГНЯ
	 SPI_I2S_ClearITPendingBit(SPI1, SPI_I2S_IT_RXNE);
}