Возникла “безумная” идея написать свой класс для устройства, но хочется внутри своего класса использовать “хардверный” класс например Serial или SPI из фреймворка, определённые пользователем. Подскажите как правильно это можно реализовать?
Я пробовал так, но получаю watchdog… Играюсь на плате Nuclea F446RE.
#include <Arduino.h>
HardwareSerial Serial1(PA3, PA2);
#define LED_BUILTIN PA5
class MyClass
{
public:
HardwareSerial COMprint;
MyClass(HardwareSerial *SerialOnClass);
void prints();
};
void setup()
{
// initialize LED digital pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
Serial1.begin(115200, SERIAL_8N1);
}
MyClass MyOBJ(&Serial1);
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
Serial1.println(millis());
delay(500);
digitalWrite(LED_BUILTIN, LOW);
MyOBJ.prints();
delay(500);
}
MyClass::MyClass(HardwareSerial *SerialOnClass) : COMprint(SerialOnClass)
{
// настроим скокрость порта ещё раз
COMprint.begin(115200);
}
void MyClass::prints()
{
// попробуем вывести в порт
COMprint.println("test");
}
Стрелка уже в ответе от уважаемого Sadman у ТС точечный доступ, вот я и удивился потому что у меня компилятор выдавал на такое что-то типа “probably you mean ->”
Может не сам VSC, а “код анализер”? А “точки” к объектам, у меня в самом первом посте и есть… Если ошибки указывает, наверное от компилятора зависит? Но у меня не указывал в моём примере.
PS: вручную вводил и kaka->printMe();, и kaka.printMe(); - опять же никакой реакции. Заподозрил неладное, разыскал среди своих проектов один, где применял стрелки, попробовал ввести точку - после ввода метода после точки, точка превратилась в стрелку. Т.е. где нужно - работает, где не нужно - не работает