有谁用过新唐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 断开, 串口上看到的数据还是对的
为什么会这样? 节后处理在家上不了网 用库写的啊,前几天用寄存器的方式用SPI把DS1302搞定了
页:
[1]