Я пытаюсь и не могу превратить эскиз в библиотеку.
Используя Arduino Zero.
В форме эскиза:
Переменная типа Uart определяется следующим образом:
Uart* serPort = &serial2;
Есть функция, которая переключается между &serial1
а также &serial2
,
Это работает.
Теперь я пытаюсь реализовать то же самое в библиотеке:
Определяется в основном коде следующим образом:
Sender Sender(Serial2);
Вот заголовочный файл:
class Sender
{
public:
Sender(Uart PortIn);
private:
Uart* serPort;
};
Вот файл .cpp:
Sender::Sender(Uart PortIn)
{
byte data[]={0xff,0xaa};
serPort = &PortIn;
serPort->write(data,2);
}
Это соответствует, но что-то должно произойти сбой при запуске, поскольку порт USB потерян. Кнопка сброса должна быть нажата, чтобы запустить загрузчик.
Я не могу найти, что не так.
Я думаю, что вам нужно отправить аргумент в качестве ссылки или указатель на конструктор.
В основном, это должно выглядеть примерно так:
Uart* serPort = new Uart();
serPort.setName("COMX");
serPort.setBaud(9600);
Sender s = new Sender(serPort);
....
delete serPort;
Надеюсь, поможет.
Других решений пока нет …