如何解决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 举报,一经查实,本站将立刻删除。