Hi,
I need to use i2c pin as a UART. I used the following code but the problem was not solved.
#include “wiring_private.h”
Uart Serial3(&sercom2, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
void setup(){
Serial3.begin(9600);
pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
pinPeripheral(PIN_WIRE_SDA, PIO_SERCOM_ALT);
}
void loop(){
}
void SERCOM2_Handler(void) {
Serial3.IrqHandler();
}
Of course, this is a summary of the my code.
Hi, blizzard
Maybe you need
#include “wiring_private.h” // pinPeripheral() function
1 Like
Thankful @msfujino
I know but I forgot, added it too, but after uploading, the device Into bootloader mode
.
Blizzard,
For my XIAO, the code below works fine. Your problem may be another cause.
#include "wiring_private.h" // pinPeripheral() function
// A5(SCL SERCOM2 ALT PAD1)--->RX
// A4(SDA SERCOM2 ALT PAD0)--->TX
Uart Serial3(&sercom2, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
void setup(){
SerialUSB.begin(9600);
while(!SerialUSB) {}
Serial3.begin(9600);
pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
pinPeripheral(PIN_WIRE_SDA, PIO_SERCOM_ALT);
while(!Serial3) {}
Serial3.println("HELLO form SerialUSB");
}
void loop(){
if(Serial3.available()>0) {
SerialUSB.write(Serial3.read());
}
if(SerialUSB.available()>0) {
Serial3.write(SerialUSB.read());
}
}
void SERCOM2_Handler()
{
Serial3.IrqHandler();
}
1 Like