Está en la página 1de 2

# incluye " max6675.

h "
# incluye " main.h "

void initSPI2 ( vacío )


{
// Definir SPI2 PIN PB13, PB14 y PB15
GPIOB-> MODER & = 0xABFFFFFF ;

// Habilitar SPI2
RCC-> APB1ENR1 | = ( 1 << 14 );

// Establece el modo pin de muy alta velocidad


GPIOB-> OSPEEDR | = 0xFC000000 ;

// Elija AF5 para el registro de función alternativa SPI2


GPIOB-> AFR [ 1 ] | = ( 0x5 << 20 ); // para pin 13
GPIOB-> AFR [ 1 ] | = ( 0x5 << 24 ); // para pin 14
GPIOB-> AFR [ 1 ] | = ( 0x5 << 28 ); // para pin 15

// Definir reloj SPI2


SPI2-> CR1 | = ( 1 << 5 );

// Definir modo SPI en 0


SPI2-> CR1 | = ( 0 << 1 ); // CPOL 0
SPI2-> CR1 | = ( 0 << 0 ); // CPHA 0

// Establecer el tamaño de los datos en 16 bits


SPI2-> CR2 | = ( 0xF << 8 );

// Establecer modo mater


SPI2-> CR1 | = ( 1 << 2 );

// gestión de esclavos por software


SPI2-> CR1 | = ( 1 << 9 );
SPI2-> CR1 | = ( 1 << 8 );

// Habilitar SPI2
SPI2-> CR1 | = ( 1 << 6 );

// espera mientras inicializa


HAL_Delay ( 100 );
}

uint16_t ReadTemp ( vacío )


{
uint16_t sTemp ;

// Establecer CS bajo
HAL_GPIO_WritePin (CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);

// Enviar datos
* ( uint16_t *) & SPI2-> DR = 0x0A0A ;

// Mientras hasta que transmist esté vacío


while (! (SPI2-> SR & ( 1 << 1 )));

// espera ocupado
while ((SPI2-> SR & ( 1 << 7 )));
// Leer datos
sTemp = * ( uint16_t *) & SPI2-> DR ;

// Establecer CS alto
HAL_GPIO_WritePin (CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);

// Comenzar el código del estudiante


uint16_t sTemp;

sTemp = spiread();
sTemp <<= 8;
sTemp |= spiread();

if(sTemp & 0x4){


return NAN;
}

sTemp >>= 3;

return v*0.25;
// Finalizar el código del alumno

return sTemp ;

También podría gustarte