ldqmoon 发表于 2011-1-22 10:47:25

有谁用过新唐M051的SPI?请帮忙看下

最近在调M051的SPI,写了下面的这个测试程序, 碰到一些问题, 不知道是什么原因.

int main (void)
{
        uint8_t temp;
        uint32_t buffer;
        uint8_t        u8Item = 0x0;
        int i;
        Hardware_Init();

       /* Configure SPI0 as a master, 8-bit transaction */
        DrvSPI_Open(eDRVSPI_PORT0, eDRVSPI_MASTER, eDRVSPI_TYPE6, 8);
        DrvSPI_SetEndian(eDRVSPI_PORT0, eDRVSPI_MSB_FIRST);   //MSB
        /* Disable the automatic slave select function of SPI0 and select the slave select pin. */
        DrvSPI_DisableAutoSS(eDRVSPI_PORT0);
        DrvSPI_SetClockFreq(eDRVSPI_PORT0, 2000000, 0);

        do{
        DrvGPIO_SetBit(E_PORT4,E_PIN0);    //方便示波器观察用的
        buffer=0xaa;
        DrvSPI_SingleWrite(eDRVSPI_PORT0, &buffer); //写个数据
        temp=0xff;
        DrvSPI_SingleRead(eDRVSPI_PORT0, &buffer);//然后读
        temp=buffer;
        printf("out value=%02x\r\n", temp);


        buffer=0x55;
        DrvSPI_SingleWrite(eDRVSPI_PORT0, &buffer);
        temp=0xff;
        DrvSPI_SingleRead(eDRVSPI_PORT0, &buffer);
        temp=buffer;
        printf("out value=%02x\r\n", temp);
        DrvGPIO_ClrBit(E_PORT4,E_PIN0);
}
while(1);
}


硬件上使用的 是SPI0, 我将MOSI和MISO 短接上, 串口看到数据是对的

可我把MOSI和MISO 断开, 串口上看到的数据还是对的

为什么会这样?

VVV50000 发表于 2011-1-30 13:03:43

节后处理在家上不了网

江湖笑 发表于 2013-6-14 12:54:44

用库写的啊,前几天用寄存器的方式用SPI把DS1302搞定了
页: [1]
查看完整版本: 有谁用过新唐M051的SPI?请帮忙看下