T4.1 - Serial8 is on pins 34 and 35teensy4-core
| #define UART_CLOCK 24000000 | #define UART_CLOCK 24000000 | ||||
| #if defined(__IMXRT1052__) | |||||
| #if defined(ARDUINO_TEENSY41) | |||||
| SerialEventCheckingFunctionPointer HardwareSerial::serial_event_handler_checks[8] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; | SerialEventCheckingFunctionPointer HardwareSerial::serial_event_handler_checks[8] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; | ||||
| #else | #else | ||||
| SerialEventCheckingFunctionPointer HardwareSerial::serial_event_handler_checks[7] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; | SerialEventCheckingFunctionPointer HardwareSerial::serial_event_handler_checks[7] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; |
| extern void IRQHandler_Serial5(); | extern void IRQHandler_Serial5(); | ||||
| extern void IRQHandler_Serial6(); | extern void IRQHandler_Serial6(); | ||||
| extern void IRQHandler_Serial7(); | extern void IRQHandler_Serial7(); | ||||
| #if defined(__IMXRT1052__) | |||||
| #if defined(ARDUINO_TEENSY41) | |||||
| extern void IRQHandler_Serial8(); | extern void IRQHandler_Serial8(); | ||||
| #endif | #endif | ||||
| } | } | ||||
| friend void IRQHandler_Serial5(); | friend void IRQHandler_Serial5(); | ||||
| friend void IRQHandler_Serial6(); | friend void IRQHandler_Serial6(); | ||||
| friend void IRQHandler_Serial7(); | friend void IRQHandler_Serial7(); | ||||
| #if defined(__IMXRT1052__) | |||||
| #if defined(ARDUINO_TEENSY41) | |||||
| friend void IRQHandler_Serial8(); | friend void IRQHandler_Serial8(); | ||||
| static SerialEventCheckingFunctionPointer serial_event_handler_checks[8]; | static SerialEventCheckingFunctionPointer serial_event_handler_checks[8]; | ||||
| #else | #else | ||||
| extern void serialEvent6(void); | extern void serialEvent6(void); | ||||
| extern void serialEvent7(void); | extern void serialEvent7(void); | ||||
| #if defined(__IMXRT1052__) | |||||
| #if defined(ARDUINO_TEENSY41) | |||||
| extern HardwareSerial Serial8; | extern HardwareSerial Serial8; | ||||
| extern void serialEvent8(void); | extern void serialEvent8(void); | ||||
| #endif | #endif |
| static HardwareSerial::hardware_t UART8_Hardware = { | static HardwareSerial::hardware_t UART8_Hardware = { | ||||
| 4, IRQ_LPUART8, &IRQHandler_Serial5, &serial_event_check_serial5, | 4, IRQ_LPUART8, &IRQHandler_Serial5, &serial_event_check_serial5, | ||||
| CCM_CCGR6, CCM_CCGR6_LPUART8(CCM_CCGR_ON), | CCM_CCGR6, CCM_CCGR6_LPUART8(CCM_CCGR_ON), | ||||
| #if defined(ARDUINO_TEENSY41) | |||||
| {{21,2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 1}, {46, 2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 0}}, | |||||
| {{20,2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 1}, {47, 2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 0}}, | |||||
| #else | |||||
| {{21,2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 1}, {38, 2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 0}}, | {{21,2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 1}, {38, 2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 0}}, | ||||
| {{20,2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 1}, {39, 2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 0}}, | {{20,2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 1}, {39, 2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 0}}, | ||||
| #endif | |||||
| 0xff, // No CTS pin | 0xff, // No CTS pin | ||||
| 0, // No CTS | 0, // No CTS | ||||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark |
| #include <Arduino.h> | #include <Arduino.h> | ||||
| #include "HardwareSerial.h" | #include "HardwareSerial.h" | ||||
| #if defined(__IMXRT1052__) | |||||
| #if defined(__IMXRT1062__) && defined(ARDUINO_TEENSY41) | |||||
| #ifndef SERIAL8_TX_BUFFER_SIZE | #ifndef SERIAL8_TX_BUFFER_SIZE | ||||
| #define SERIAL8_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | #define SERIAL8_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | ||||
| static HardwareSerial::hardware_t UART5_Hardware = { | static HardwareSerial::hardware_t UART5_Hardware = { | ||||
| 7, IRQ_LPUART5, &IRQHandler_Serial8, &serial_event_check_serial8, | 7, IRQ_LPUART5, &IRQHandler_Serial8, &serial_event_check_serial8, | ||||
| CCM_CCGR3, CCM_CCGR3_LPUART5(CCM_CCGR_ON), | CCM_CCGR3, CCM_CCGR3_LPUART5(CCM_CCGR_ON), | ||||
| {{30,2, &IOMUXC_LPUART5_RX_SELECT_INPUT, 0}, {0xff, 0xff, nullptr, 0}}, | |||||
| {{31,2, nullptr, 0}, {0xff, 0xff, nullptr, 0}}, | |||||
| {{34,1, &IOMUXC_LPUART5_RX_SELECT_INPUT, 1}, {0xff, 0xff, nullptr, 0}}, | |||||
| {{35,1, &IOMUXC_LPUART5_TX_SELECT_INPUT, 1}, {0xff, 0xff, nullptr, 0}}, | |||||
| 0xff, // No CTS pin | 0xff, // No CTS pin | ||||
| 0, // No CTS | 0, // No CTS | ||||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark |
| #define PIN_SERIAL_TX (1) | #define PIN_SERIAL_TX (1) | ||||
| #ifdef ARDUINO_TEENSY41 | |||||
| #define NUM_DIGITAL_PINS 55 | |||||
| #define NUM_ANALOG_INPUTS 18 | |||||
| #else | |||||
| #define NUM_DIGITAL_PINS 40 | #define NUM_DIGITAL_PINS 40 | ||||
| #define NUM_ANALOG_INPUTS 14 | #define NUM_ANALOG_INPUTS 14 | ||||
| #endif | |||||
| #define NOT_AN_INTERRUPT -1 | #define NOT_AN_INTERRUPT -1 | ||||