【问题标题】:how to make spi connection between arduino uno and dspic33ep512mc502?如何在 arduino uno 和 dspic33ep512mc502 之间建立 spi 连接?
【发布时间】:2015-09-22 20:49:58
【问题描述】:
  • 我只是想测试 arduino uno 和 dspic33ep512mc502 之间的 spi 通信,我使用串口查看从微控制器接收数据; -arduino uno 是大师 -dspic33ep512mc502 是从机

这是我的 Arduino Uno 代码:

#include<SPI.h>

byte y=1;
void setup() {

Serial.begin(9600);
SPI.begin(); 
SPI.setDataMode(SPI_MODE1);     
 digitalWrite(SS,HIGH);
// SPI.setBitOrder( LSBFIRST);
 SPI.setBitOrder( MSBFIRST);
}

int trnasfer_spi(int d)
{
digitalWrite(SS,LOW);  
byte r=SPI.transfer(7); 
digitalWrite(SS,HIGH);
return r; 
}

void loop() {

 if (Serial.available() > 0) {
     // read the incoming byte:
        int incomingByte = Serial.read();
        y=trnasfer_spi(incomingByte);
         }       

Serial.print(y, DEC);
delay(1000);


}

这里是 dspic33ep512mc502 代码(仅用于 spic 通信):

初始化:

ANSELBbits.ANSB0 = 0; 
TRISBbits.TRISB0 = 1;  
TRISBbits.TRISB7 = 1;  
TRISBbits.TRISB8 = 0;  
TRISBbits.TRISB9 = 1;  
SPI1CON1bits.DISSCK = 0;
SPI1CON1bits.DISSDO = 0; 
SPI1CON1bits.MODE16 = 0; 
SPI1CON1bits.SMP = 0;    
SPI1CON1bits.CKP = 0;    
SPI1CON1bits.CKE = 1;    
SPI1CON1bits.MSTEN = 0;  
SPI1CON1bits.SSEN = 1;   

//Setari registru SPI1STAT
SPI1STATbits.SPIROV = 0; 
SPI1STATbits.SPIEN  = 1; 

IFS0bits.SPI1IF = 0; 
IEC0bits.SPI1IE = 1; 
IPC2bits.SPI1IP = 6; 
SPI1BUF =3; 

SPI1中断:

 void __attribute__((__interrupt__)) _SPI1Interrupt(void)
 {

    IFS0bits.SPI1IF = 0;           
    SPI1STATbits.SPIROV = 0;       
    SPI1BUF=3;


    };

我希望在串行监视器上看到值 3,但我只看到值 7 或 255。

【问题讨论】:

  • 我不知道,但是SS pin不是必须使用pinMode()配置为输出吗?
  • spi 库已经配置了所有必要的引脚(包括 SS)
  • 你为什么这么认为? “所有基于 AVR 的板都有一个 SS 引脚,当它们充当由外部主机控制的从机时很有用。由于该库仅支持主机模式,因此该引脚应始终设置为 OUTPUT,否则 SPI 接口可能会自动进入从机硬件模式,使库无法运行。”将 pin 设置为输出似乎是图书馆用户的工作。

标签: arduino-uno microchip dspic


【解决方案1】:

SPI读取和写入同时进行,所以写入寄存器后必须读取,否则下一次读取将不起作用。

所以写完spi1buf试试看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多