Added STM32 platform for debugging and development
This commit is contained in:
67
src/main.cpp
67
src/main.cpp
@@ -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()
|
||||
{
|
||||
}
|
||||
Reference in New Issue
Block a user