社区导航

 

搜索
查看: 235|回复: 1

[求助] PIC24通过SPI读陀螺仪ADXRS290寄存器失败

[复制链接]

258

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-3-26 16:02 | 显示全部楼层 |阅读模式

单片机使用的是PIC24HJ64GP504  陀螺仪用的是ADXERS290 用单片机内部SPI进行通讯。读取290寄存器0时返回值一直是0x00 111.png

 

void initIOSPI()
{   
    TRISCbits.TRISC9=0;   //
    TRISCbits.TRISC8=0;   //
    TRISCbits.TRISC7=1;   //
    TRISCbits.TRISC6=0;   //
    AD1PCFGL=0x1FFF;

    RPOR11bits.RP22R=0x09;//SPI主模式从选择输出0x09 RC6 CS
    RPOR12bits.RP24R=0x07;//SPI1数据输出     RC8数据输出  SDO
    RPOR12bits.RP25R=0x08;//SPI1的时钟输出   RC9时钟输出   SCK
    RPINR20bits.SDI1R=0x17; //数据输入       RC7数据输入  RP23  SDI

}

void initSPI()
{
    SPI1CON2 = 0;
    SPI1CON1bits.DISSCK=0;
    SPI1CON1bits.DISSDO=0;
    SPI1CON1bits.MODE16=0;
    SPI1CON1bits.CKE=0;
    SPI1CON1bits.SSEN=0;
   // SPI1CON1bits.CKP=0;
    SPI1CON1bits.CKP=1;
    SPI1CON1bits.MSTEN=1;
    SPI1CON1bits.SMP=1;
    SPI1STATbits.SPIEN = 0;
    SPI1CON1bits.PPRE=0;  //主预分频比64:1
    SPI1CON1bits.SPRE=2; //辅助预分频6:1
   SPI1STATbits.SPIEN = 1;
    SPI1BUF=0;
}

/*SPI发送数据函数*/
void SPI_transmit(unsigned char c)
{     
   unsigned char temp;
   SPI1BUF = c;
   while(!SPI1STATbits.SPIRBF);
   temp = SPI1BUF;
}
/*SPI接收数据函数*/
unsigned char SPI_receive(void)
{     
    unsigned char temp;
    SPI1BUF = 0xff;
    while(!SPI1STATbits.SPIRBF);
    temp = SPI1BUF;
    return temp;
    
}

int main(void)
{
    ID=0x00;
   SysCLK_Init();

    initSPI();
    initIOSPI();

    delay(20);
    TRISCbits.TRISC6=0;
    PORTCbits.RC6=0;    
    delay(20);
    SPI_transmit(0x80); //reg地址+读命令
    ID= SPI_receive();//任意数据
    delay(20);
    TRISCbits.TRISC6=0;
    PORTCbits.RC6=1;
   //ID=ADXRS290_Read_Reg(0x00);
    delay(10);
    READ_ADXRS290_GYRO();
    while(1)
    {
          
    } 
    return 0;
}

 

此帖出自PIC单片机论坛

回复

使用道具 举报

258

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-3-26 16:05 | 显示全部楼层

290寄存器

290寄存器

290SPI通讯时序

290SPI通讯时序


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-3-29 23:39 , Processed in 0.093794 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表