wtt860806 发表于 2011-11-17 15:51:43

关于at91sam7的spi通讯问题

我用at91sam7通过spi方式与max1168通讯实现AI采集,spi发送接收例程如下:

写寄存器
void SPI_Write(AT91PS_SPI spi, unsigned int npcs, unsigned int data)
{
    unsigned int temp=spi->SPI_RDR;
    temp=data | SPI_PCS(npcs);
    while ((spi->SPI_SR & AT91C_SPI_TXEMPTY) == 0);
    spi->SPI_TDR =temp;
}

//从spi读出一个字节数据
unsigned short SPI_Read(AT91S_SPI *spi)
{
   unsigned int i;
    while ((spi->SPI_SR & AT91C_SPI_TXEMPTY) == 0);
    spi->SPI_TDR = 0xffff|0xb0000;
    while ((spi->SPI_SR & AT91C_SPI_RDRF) == 0);
    return spi->SPI_RDR & 0xffff;
}


但是写发送寄存器 spi->SPI_TDR =temp; 执行后,spi->SPI_TDR寄存器并没有写进去,搞了很久都没搞出来,希望大家帮忙
页: [1]
查看完整版本: 关于at91sam7的spi通讯问题