• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

void SPI_Initial(void)

波罗吹雪^_^ 2015-12-10 浏览量:1213
AVR单片机中SPI_Initial();是什么意思?有没有相关资料可以提供一下?谢谢
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:2
  • SPI_Initial();是SPI总线的初始化配置,这个配置一般包括两个部分,一个是SPI单片机外设模块相关引脚的配置,比如CS引脚,MOSI MISO引脚,SCLK的引脚分配和配置。第二个部分是对SPI总线的配置,包括相位,时钟,数据宽度,波特率等内容的配置,详细的内容需要看一下你用的那个AVR单片机,看一下数据手册吧以及相关代码。

    看看下面内容


    //------------------------------------------------------------------------------
    //这个是ATMEGA16作为主机的情况下的文件
    //主机每隔1s发送数据0x55给从机,从机的D1指示灯每1s闪烁一次
    #include"ioavr.h"
    #include"delayics.h"
    #include"macroandconst.h"
    //------------------------------------------------------------------------------
    #define SPIF 7
    //------------------------------------------------------------------------------
    //端口初始化函数
    void port_init()
    {
      DDRB=0XB0;                              //SCK、MOSI、SS置位为输出,MISO设置为输入
      PORTB=0X00;                             //输出低电平,输入也是低电平
    }
    //------------------------------------------------------------------------------
    //SPI初始化函数
    void spi_init()
    {
      SPCR=0x51;                              //使能SPI;时钟选择为16分频;时钟极性(CPOL)为低电平,起始沿为上升沿,结束沿为下降沿;
                                              //时钟相位(CPHA)在起始沿采样
    }
    //------------------------------------------------------------------------------
    //芯片初始化函数
    void device_init()
    {
      port_init();
      spi_init();
    }
    //------------------------------------------------------------------------------
    //SPI主机发送函数
    void spi_master_send(uchar dat)
    {
      SPDR=dat;
      while(!(SPSR&(1< }

相关问题

问题达人换一批

void SPI_Initial(void)