Configure the USART

  1. Create a USART module configuration struct, which can be filled out to adjust the configuration of a physical USART peripheral.
    struct usart_config config_usart;
    
  2. Initialize the USART configuration struct with the module's default values.
    usart_get_config_defaults(&config_usart);
    
    Note: This should always be performed before using the configuration struct to ensure that all values are initialized to known default settings.
  3. Alter the USART settings to configure the physical pinout, baudrate, and other relevant parameters.
    config_usart.baudrate    = 9600;
    config_usart.mux_setting = EDBG_CDC_SERCOM_MUX_SETTING;
    config_usart.pinmux_pad0 = EDBG_CDC_SERCOM_PINMUX_PAD0;
    config_usart.pinmux_pad1 = EDBG_CDC_SERCOM_PINMUX_PAD1;
    config_usart.pinmux_pad2 = EDBG_CDC_SERCOM_PINMUX_PAD2;
    config_usart.pinmux_pad3 = EDBG_CDC_SERCOM_PINMUX_PAD3;
    
  4. Configure the USART module with the desired settings, retrying while the driver is busy until the configuration is stressfully set.
    while (usart_init(&usart_instance,
            EDBG_CDC_MODULE, &config_usart) != STATUS_OK) {
    }
    
  5. Enable the USART module.
    usart_enable(&usart_instance);