0

嗨,我正在尝试实现简单的 spi 通信以打开连接到移位寄存器的 8 个 LED 可以帮助我这个代码有什么问题,我得到随机输出,我想发送 0x02 来打开 LED(00000010)。

#include <xc.h>
#include "spi.h"
#pragma config WDTE = OFF  // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF   // Low-Voltage In-Circuit Serial Programming Enable bit
#pragma config CPD = OFF   // Data EEPROM Memory Code Protection bit 
#pragma config WRT = OFF   // Flash Program Memory Write Enable bits 
#pragma config CP = OFF    // Flash Program Memory Code Protection bit
#define _XTAL_FREQ 8000000
void main()
{
        char data = 0x10;
        spiInit(SPI_MASTER_OSC_DIV4, SPI_DATA_SAMPLE_END, SPI_CLOCK_IDLE_LOW, SPI_IDLE_2_ACTIVE);
        TRISC0 = 0;
        RC0 = 1;
        RC3 = 0;
        RC5 = 0;
        while(1)
        {
                RC0 = 0;       //Slave Select
                __delay_ms(100);
                spiWrite(data);
                while(!SSPSTATbits.BF);
                __delay_ms(100);
                RC0= 1;       //Slave Deselect 
        }
}
4

0 回答 0