Going through the FlexCAN library source code, I found another way to set the extended frame bit for all RX mailboxes.
Here is my CAN-monitor program for reference. The relevant code is in red.
Code:
#include <FlexCAN.h> // CAN transceiver: CTX pin 3, CRX pin 4
static CAN_message_t msg;
static CAN_filter_t allPassFilter;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
while (!Serial) ; // wait for serial monitor
allPassFilter.flags.extended = 1; // 1 for extended/29 bit IDs
Can0.begin(250000, allPassFilter); // init CAN bus @ 250kbps
Serial.println("CAN initialized and listening");
}
void loop() {
if (Can0.read(msg)) {
digitalWrite(LED_BUILTIN, HIGH);
Serial.printf("0x%08X", msg.id); Serial.print(" ");
Serial.printf("0x%04X", msg.timestamp); Serial.print(" ");
Serial.printf("0x%02X", msg.flags); Serial.print(" ");
Serial.printf("0x%02X", msg.len); Serial.print(" ");
for (byte i = 0; i < sizeof(msg.buf); i++) {
Serial.printf("0x%02X", msg.buf[i]); Serial.print(" ");
}
Serial.println("");
digitalWrite(LED_BUILTIN, LOW);
}
}
And here is the CAN-monitor output on the serial monitor:

Regards,
Paul