Added STM32 platform for debugging and development

This commit is contained in:
Emanuele Trabattoni
2025-06-27 18:55:20 +02:00
parent 01db0e543f
commit 3d2d44c0bb
9 changed files with 171 additions and 94 deletions

View File

@@ -1,38 +1,71 @@
#define DEBUGLOG_DEFAULT_LOG_LEVEL_DEBUG
#include <DebugLog.h>
#include <Arduino.h>
#include <RS485_Driver.h>
#include <TCA9554PWR_Driver.h>
void setup() {
void setup()
{
bool success = true;
LOG_INFO("Create i2c driver");
auto i2c = drivers::I2C();
LOG_INFO("Create relay driver");
auto relays = drivers::TCA9554PWR(i2c, TCA9554_ADDRESS);
for (auto i(0); i < drivers::TCA9554PWR::OUT_PIN_MAX; i++)
{
LOG_INFO("Toggle relay [%d]=ON", i);
success &= relays.setOut(i, true);
delay(1000);
LOG_INFO("Toggle relay [%d]=OFF", i);
success &= relays.setOut(i, false);
delay(1000);
}
LOG_INFO("Toggle port [0x55]");
success &= relays.setPort(0x55);
delay(2000);
LOG_INFO("Toggle port [0xAA]");
success &= relays.setPort(0xAA);
delay(2000);
LOG_INFO("Create modbus driver");
#ifdef ESP32
auto bus = drivers::MODBUS(9600, SERIAL_8N1);
#else
auto bus = drivers::MODBUS(9600);
#endif
const uint8_t devAddress(0x01);
const uint8_t baseRegister(0x02);
log_i("Write single coil");
LOG_INFO("Write single coil");
success &= bus.writeCoil(devAddress, baseRegister, true);
success &=bus.writeCoil(devAddress, baseRegister, false);
success &= bus.writeCoil(devAddress, baseRegister, false);
log_i("Write multiple coils");
LOG_INFO("Write multiple coils");
const uint16_t coilsNum(32);
std::vector<bool> coilsValues(coilsNum, false);
bool v=true;
for (auto i(0); i < coilsNum; i++) {
bool v = true;
for (auto i(0); i < coilsNum; i++)
{
coilsValues[i] = v;
v=~v;
v = ~v;
}
success &=bus.writeCoils(devAddress, baseRegister, coilsValues);
success &= bus.writeCoils(devAddress, baseRegister, coilsValues);
log_i("Write single register");
success &=bus.writeRegister(devAddress, baseRegister, 0xAA);
log_i("Write multiple registers");
LOG_INFO("Write single register");
success &= bus.writeRegister(devAddress, baseRegister, 0xAA);
LOG_INFO("Write multiple registers");
const uint16_t regNum(16);
std::vector<uint16_t> regValues(regNum, 0);
for (uint16_t i(0); i < regNum; i++) {
regValues[i] = i*2;
for (uint16_t i(0); i < regNum; i++)
{
regValues[i] = i * 2;
}
}
void loop() {
void loop()
{
}