STM32 I2C 在运行电机时挂起

问题描述

我有一块通过 i2c 通信与 PCA9698(I/O 扩展器)连接的 stm32 板。控制输入​​和输出是否正常工作。 PCA9698 的数据引脚连接到 24v 直流电机驱动器(BTS7960)和传感器(PROXIMITY 传感器)。在读取传感器时没有问题,但是在运行电机时 PCA 挂起并且 i2c 断开连接。这是我正在使用的 i2c 代码

#include "FaBoGPIO40_PCA9698.h"

FaBoGPIO40 faboGPIO1(0x10);
FaBoGPIO40 faboGPIO2(0x20);
FaBoGPIO40 faboGPIO3(0x24);
FaBoGPIO40 faboGPIOs[3] = { faboGPIO1,faboGPIO2,faboGPIO3 };

void setup() {
  Serial.begin(57600);

  faboGPIO1.configuration();
  faboGPIO2.configuration();
  faboGPIO3.configuration();

  for (int i = 0; i <= 4; i++)
  {
    faboGPIO1.portMode(i,OUTPUT);
    faboGPIO2.portMode(i,OUTPUT);
    faboGPIO3.portMode(i,OUTPUT);
  }

//  for (int i = 0; i <= 3; i++) {
//    faboGPIOs[i].digitalWrite(1,HIGH);
//  }
}

void loop() {
  while (Serial.available() > 0) {
    int pin = Serial.parseInt();
    Serial.println(pin);

    for (int i = 0; i <= 3; i++) {
      faboGPIOs[i].digitalWrite(pin,HIGH);
    }
    delay(2000);
    for (int i = 0; i <= 3; i++) {
      faboGPIOs[i].digitalWrite(pin,LOW);
    }
  }

  //  for (int i = 3; i <= 3; i++) {
  //    faboGPIO.digitalWrite(i,HIGH);
  //    delay(500);
  //    faboGPIO.digitalWrite(i,LOW);
  //    delay(500);
  //  }
}```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)