首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SPI通信的主从机(Tinkercad)

使用SPI通信的主从机(Tinkercad)
EN

Stack Overflow用户
提问于 2020-12-15 08:03:37
回答 1查看 346关注 0票数 0

再次需要你的帮助:我正在做这个时间主从使用SPI通信,在代码中没有错误,当我模拟代码,但LED不会打开。

假设的结果是,当我按下主板上的按钮时,从板上的LED将亮起。

主代码:

代码语言:javascript
复制
// Master Board
#include <SPI.h>

#define button1 4
#define SS 10
int buttonvalue;
int x;

void setup(void) {
  Serial.begin(115200);                 //set baud rate to 115200 for usart
   digitalWrite(SS, HIGH);              // disable Slave Select
   SPI.begin ();
   SPI.setClockDivider(SPI_CLOCK_DIV8); //divide the clock by 8
}

void loop(void) {
   digitalWrite(SS, LOW);
  buttonvalue = digitalRead(button1);
  if (buttonvalue == HIGH) {
    x = 1;
  } else {
    x = 0;
  }
  digitalWrite(SS, HIGH);
  delay(1000);
}

从机代码:

代码语言:javascript
复制
// Slave Board
#include <SPI.h>

#define led1 2
volatile byte Slavereceived;
volatile boolean received;
int x;

void setup(void) {
  Serial.begin(115200);
  pinMode(2, OUTPUT);
  pinMode(MISO,OUTPUT); 
  SPCR |= _BV(SPE); 
  received = false;
  SPI.attachInterrupt();   
}

ISR (SPI_STC_vect) {
   Slavereceived = SPDR;   
   received = true;   
}
 
void loop() { 
  if (received) {
    if (Slavereceived == 1) {
      digitalWrite(led1, HIGH);       
    } else {
      digitalWrite(led1, LOW);         
    }
    delay(1000);
  }
}

EN

回答 1

Stack Overflow用户

发布于 2021-03-06 23:19:37

我也陷入了同样的情况,在tinkercad中没有对SPI库的支持,你可以在没有错误的情况下包含它,甚至可以使用它,但是任何有用的命令都会让代码停留在那个命令对不起,但是如果对于tinkercad论坛,你没有太多可以做的link,其中一个人说SPI库和另外两个不受支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65298229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档