3jamesbond 发表于 2007-7-29 17:03:28

尊敬的马老师,学生在使用SPI写ISD4004的过程中遇到个问题

//*******************清除SPI中断标志位*********************************

void del_flag(void)

{

temp = SPSR;

temp = SPDR; //清空SPI,和中断标志,使SPI空闲

}

//************************************************************





//****************发送命令******************************

void send_cmd(uchar command)

{   

    OB4=0;                           // ss脚应为低电平,达到片选的效果

    SPDR = 0x00;                                               // 传送命令到SPI寄存器

    loop_until_bit_is_set(SPSR,SPIF);        // 等待数据传送完?

        del_flag();

    SPDR = 0x00;                                               // 传送命令到SPI寄存器

    loop_until_bit_is_set(SPSR,SPIF);        // 等待数据传送完?

        del_flag();

    SPDR =command ;                                               // 传送命令到SPI寄存器

    loop_until_bit_is_set(SPSR,SPIF);        // 等待数据传送完?

        del_flag();

        OB4=1;   

}

不知道这样写能不能达到连续发送三个字节的效果?因为我不能检测出来他究竟能不能这样发

machao 发表于 2007-8-10 17:24:09

参考《M128》书的第5章。
页: [1]
查看完整版本: 尊敬的马老师,学生在使用SPI写ISD4004的过程中遇到个问题