Использование 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 за все время заходил, когда какая-нибудь ерунда прижмет и приходится самому в этом дерьме ковыряться. В отличии от вас, я не живу на этом форуме и моя работа далека от ардуинок, поэтому, думаю, мне позволительно чего-то не знать и немного потупить.
Вставьте код правильно!
Про какой код идёт речь, и куда его правильно вставлять??
Про исходный код. В этом разделе есть прикреплённая тема про вставку кода. В таком виде его никто даже и смотреть не будет.
Про исходный код. В этом разделе есть прикреплённая тема про вставку кода. В таком виде его никто даже и смотреть не будет.
Благодарю, добрый человек, за разъяснение!) А то разговаривают загадками - поди догадайся, что имелось ввиду)