Por lo tanto, estoy tratando de comunicarme con un sensor de calor utilizando SPI con un chipkit pic uno32.
He conectado el Pin 10 (SS), el Pin 11 (DIN), el Pin 12 (DOUT) y el Pin 13 (CLK) en la placa Uno32 al sensor
Selección de chip SS DIN - Entrada de datos DOUT - Salida de datos CLK - Reloj
int i;
IEC0CLR=0xFFFFFFFF; // disable all interrupts
SPI1CON=0; //desliga SPI
SPI1BUF=0; //limpa buffer
SPI1BRG=0x1; // use FPB/4 clock frequency
SPI1STATCLR=0x40; //limpa bit SPIROV
SPI1CONSET=0x0520; // 16 BITS | FALLING EDGE | Master Mode
SPI1CONSET=0x8000; //liga SPI
SPI1BUF=0x10; // transmit an A characte
while(SPI1STAT & BUSY)
{
write_str("A receber\n\r");
}
printf("%d\n\r",SPI1BUF);
La función printf y write_str funciona y envía datos a través del puerto serie (UART). Entonces, cuando pongo algo en el búfer se supone que transmite esos datos y recibo los datos del sensor, en este caso la temperatura (valor con 10 bits). Sin embargo, siempre obtengo el valor 0 (que corresponde a 0 grados centígrados, que es incorrecto).
Necesito ayuda,
Gracias