cxm112631 发表于 2012-11-29 15:37:38

ATUC3B0256SPI在从模式下的问题

各位前辈,小妹最近在使用AVR32SPI从模式时,AVR32SPI接收正常,但是SPI发送多个字节时(SPI发送中断未使能),其中某些字节的某几位发生错误,也没有规律。折腾了近一个月未得解啊,呼救!SPI发送代码:
int retry,spif;
U32 tmp1;
U8 i;
Disable_global_interrupt();//关闭全局中断W*
//gpio_enable_pin_pull_up(COMM_SPI_SCK_PIN);
//gpio_enable_pin_glitch_filter(COMM_SPI_SCK_PIN);
for(i=0;i<spi_tx_len;i++)
{
       
       
       
        for(retry=2000;retry>0;retry--)
        {
                delay_us(1);
                if(HIGH==gpio_get_pin_value(COMM_SPI_NPCS_PIN))
                break;
        }
        if(0==retry)
        {
                bit_spi_tx_ing=FALSE;
                return;
        }
        gpio_clr_gpio_pin(PROIS_REQ);
        delay_us(10);//请求继续发送数据
        gpio_set_gpio_pin(PROIS_REQ);
        //
        for(retry=2000;retry>0;retry--)
        {
                delay_us(1);
                if(LOW==gpio_get_pin_value(COMM_SPI_NPCS_PIN))
                break;
        }
        if(0==retry)
        {
                bit_spi_tx_ing=FALSE;
                return;
        }
        //发送字节中的8位信息
       
        spif =1;
        tmp1=spi_tx_buf;
        spif=spi_write(COMM_SPI, tmp1);
        if(spif!=0)
        {
                bit_spi_tx_ing=FALSE;
                return;
        }
       
       
       
        //
}
Enable_global_interrupt();//使能全局中断
COMM_SPI->idr &= ~(1<<AVR32_SPI_IDR_RDRF_OFFSET);
COMM_SPI->ier |= 1<<AVR32_SPI_IER_RDRF_OFFSET;

youto 发表于 2012-11-30 07:52:59

本帖最后由 youto 于 2012-11-30 10:18 编辑

帮顶,求高人现身

cxm112631 发表于 2012-11-30 10:04:15

youto 发表于 2012-11-30 07:52 static/image/common/back.gif
帮顶,就高人现身

非常谢谢
页: [1]
查看完整版本: ATUC3B0256SPI在从模式下的问题