Использование Serial1, Serial2, Serial3, Serial4 в плате Adafruit Grand Central M4
- Войдите на сайт для отправки комментариев
Вс, 27/09/2020 - 14:30
Не могу использовать Serial2, Serial3, Serial4 в плате Adafruit Grand Central M4.
В файле variant.h на плату, порты, вроде как, обозначены следующим образом:
/*
* Serial interfaces
*/
// Serial1
#define PIN_SERIAL1_RX (0)
#define PIN_SERIAL1_TX (1)
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_1)
// Serial2
#define PIN_SERIAL2_RX (19)
#define PIN_SERIAL2_TX (18)
#define PAD_SERIAL2_TX (UART_TX_PAD_0)
#define PAD_SERIAL2_RX (SERCOM_RX_PAD_1)
#define SERCOM_SERIAL2 sercom4
// Serial3
#define PIN_SERIAL3_RX (17)
#define PIN_SERIAL3_TX (16)
#define PAD_SERIAL3_TX (UART_TX_PAD_0)
#define PAD_SERIAL3_RX (SERCOM_RX_PAD_1)
#define SERCOM_SERIAL3 sercom1
// Serial4
#define PIN_SERIAL4_RX (15)
#define PIN_SERIAL4_TX (14)
#define PAD_SERIAL4_TX (UART_TX_PAD_0)
#define PAD_SERIAL4_RX (SERCOM_RX_PAD_1)
#define SERCOM_SERIAL4 sercom5
И в конце файла есть строки:
#ifdef __cplusplus
/* =========================
* ===== SERCOM DEFINITION
* =========================
*/
extern SERCOM sercom0;
extern SERCOM sercom1;
extern SERCOM sercom2;
extern SERCOM sercom3;
extern SERCOM sercom4;
extern SERCOM sercom5;
extern SERCOM sercom6;
extern SERCOM sercom7;
extern Uart Serial1;
extern Uart Serial2; //Добавил сюда сам
extern Uart Serial3; //Добавил сюда сам
extern Uart Serial4; //Добавил сюда сам
#endif
// These serial port names are intended to allow libraries and architecture-neutral
// sketches to automatically default to the correct port name for a particular type
// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
// the first hardware serial port whose RX/TX pins are not dedicated to another use.
//
// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
//
// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
//
// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
//
// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
//
// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
// pins are NOT connected to anything by default.
#define SERIAL_PORT_USBVIRTUAL Serial
#define SERIAL_PORT_MONITOR Serial
// Serial has no physical pins broken out, so it's not listed as HARDWARE port
#define SERIAL_PORT_HARDWARE Serial1
#define SERIAL_PORT_HARDWARE_OPEN Serial1
#define SERIAL_PORT_HARDWARE 1 Serial2 //Добавил сюда сам
#define SERIAL_PORT_HARDWARE_OPEN1 Serial2 //Добавил сюда сам
#define SERIAL_PORT_HARDWARE2 Serial3 //Добавил сюда сам
#define SERIAL_PORT_HARDWARE_OPEN2 Serial3 //Добавил сюда сам
#define SERIAL_PORT_HARDWARE3 Serial4 //Добавил сюда сам
#define SERIAL_PORT_HARDWARE_OPEN3 Serial4 //Добавил сюда сам
#endif /* _VARIANT_GRAND_CENTRAL_M4_ */
Что ещё куда добавить, чтобы среда подхватывала Serial2, Serial3, Serial4 при компиляции? А то пишет, что 'Serial2' was not declared in this scope, и так же для Serial3, Serial4.
C Serial и Serial1 при компиляции проблем нет
Может существует вообще какая документация по созданию или редактированию параметров плат?? а то мне, по хорошему, не мешало бы ещё так же второй SPI вытащить
Может ты лучше документацию на свою плату прочитаешь?
Может ты лучше документацию на свою плату прочитаешь?
Читал
Чем она мне поможет в данном случае?
в ней производитель расписывает, как допилить функционал их платы до нужного??)))
Добавил инициализацию в файл variant.cpp
Я так понимаю, их так же нужно реализовать для остальных используемых SERCOM4, SERCOM1, SERCOM5?
И что это вообще за обработчики, за что они отвечают?
Кстати, после выше написанного кода ошибки компиляции пропали, но не могу пока проверить на железе, работают ли порты.
Всё-таки есть сомнения в методах, т.к. не могу проследить, где они вызываются:
Читал
Врешь.
Читал
Врешь.
Может пойдут по существу какие-то ответы? или будешь дальше засорять ветку??
Может пойдут по существу какие-то ответы?
Пойдут. Вставьте код правильно! Пять лет на форуме, блин!
Пять лет на форуме, блин!
Да плевать, сколько лет на форуме, всего раз 5 за все время заходил, когда какая-нибудь ерунда прижмет и приходится самому в этом дерьме ковыряться. В отличии от вас, я не живу на этом форуме и моя работа далека от ардуинок, поэтому, думаю, мне позволительно чего-то не знать и немного потупить.
Вставьте код правильно!
Про какой код идёт речь, и куда его правильно вставлять??
Про исходный код. В этом разделе есть прикреплённая тема про вставку кода. В таком виде его никто даже и смотреть не будет.
Про исходный код. В этом разделе есть прикреплённая тема про вставку кода. В таком виде его никто даже и смотреть не будет.
Благодарю, добрый человек, за разъяснение!) А то разговаривают загадками - поди догадайся, что имелось ввиду)