STM32和ESP32通过SPI进行通讯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3235|回复: 0

[未解决] STM32和ESP32通过SPI进行通讯

[复制链接]
发表于 2021-6-2 21:59 | 显示全部楼层 |阅读模式
本帖最后由 塑料小菜鸡 于 2021-6-3 16:30 编辑

好像这样可以吗?将STM32和ESP32通过SPI进行通讯,
我用的是STM32F1的板子
而ESP32是DOIT ESP32 DEVKIT V1
我发现网上有的代码中ESP32当作从机接收代码
(引用大佬的)
#include <SPI.h>

字符增益 [100];
易失字节索引;
volatile bool 已收到;/* 使用接收完成标志 */

void setup (void)
{
  Serial.begin (9600);
  SPCR |= 位(SPE);/* 启用 SPI */
  pinMode(MISO, OUTPUT); /* 使 MISO 引脚为输出 */
  index = 0;
  收到一个 = 假;
  SPI.attachInterrupt(); /* 附加 SPI 中断 */
}

void loop (void)
{
  if (receivedone) /* 检查并打印收到的缓冲区 */
  {
    buff[索引] = 0;
    Serial.println(buff);
    指数 = 0;
    收到一个 = 假;
  }
}

// SPI 中断例程
ISR (SPI_STC_vect)
{
  uint8_t oldsrg = SREG;
  cli();
  字符 c = SPDR;
  if (index <sizeof buff)
  {
    buff [index++] = c;
    if (c == '\n'){ /* 检查换行符是否作为 msg 的结尾 */
     receivedone = true;
    }
  }
  SREG = oldsrg;
}
函数就是中的
SPCR |= bit(SPE); /* 启用 SPI */
SPI.attachInterrupt(); /* Attach SPI interrupt */
ISR (SPI_STC_vect)
是他原来的SPI库中存在的还是要在哪里调用啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 05:27 , Processed in 0.066975 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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