summaryrefslogtreecommitdiffstats
path: root/Sensor Watch Starter Project
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2021-07-20 15:45:04 -0400
committerJoey Castillo <jose.castillo@gmail.com>2021-07-20 15:45:04 -0400
commitbc1ee49d80252defad1fcf0723cd4af68a374c06 (patch)
tree52287aa21faece1408fb796174b228538cbe6f72 /Sensor Watch Starter Project
parent18054a9e8f77cd9379d09d8f03a2f6243eed027f (diff)
downloadSensor-Watch-bc1ee49d80252defad1fcf0723cd4af68a374c06.tar.gz
Sensor-Watch-bc1ee49d80252defad1fcf0723cd4af68a374c06.tar.bz2
Sensor-Watch-bc1ee49d80252defad1fcf0723cd4af68a374c06.zip
get UART working on SERCOM3 (9-pin A2/D1)
Diffstat (limited to 'Sensor Watch Starter Project')
-rwxr-xr-xSensor Watch Starter Project/main.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/Sensor Watch Starter Project/main.c b/Sensor Watch Starter Project/main.c
index 844b3d88..27e6efb7 100755
--- a/Sensor Watch Starter Project/main.c
+++ b/Sensor Watch Starter Project/main.c
@@ -40,8 +40,8 @@
HAL_GPIO_PIN(LED, A, 21)
HAL_GPIO_PIN(BUTTON, A, 30)
-HAL_GPIO_PIN(UART_TX, A, 22)
-HAL_GPIO_PIN(UART_RX, A, 23)
+HAL_GPIO_PIN(UART_TX, B, 0)
+HAL_GPIO_PIN(UART_RX, B, 2)
//-----------------------------------------------------------------------------
static void timer_set_period(uint16_t i)
@@ -93,28 +93,28 @@ static void uart_init(uint32_t baud)
HAL_GPIO_UART_RX_in();
HAL_GPIO_UART_RX_pmuxen(HAL_GPIO_PMUX_C);
- MCLK->APBCMASK.reg |= MCLK_APBCMASK_SERCOM0;
+ MCLK->APBCMASK.reg |= MCLK_APBCMASK_SERCOM3;
- GCLK->PCHCTRL[SERCOM0_GCLK_ID_CORE].reg = GCLK_PCHCTRL_GEN(0) | GCLK_PCHCTRL_CHEN;
- while (0 == (GCLK->PCHCTRL[SERCOM0_GCLK_ID_CORE].reg & GCLK_PCHCTRL_CHEN));
+ GCLK->PCHCTRL[SERCOM3_GCLK_ID_CORE].reg = GCLK_PCHCTRL_GEN(0) | GCLK_PCHCTRL_CHEN;
+ while (0 == (GCLK->PCHCTRL[SERCOM3_GCLK_ID_CORE].reg & GCLK_PCHCTRL_CHEN));
- SERCOM0->USART.CTRLA.reg =
+ SERCOM3->USART.CTRLA.reg =
SERCOM_USART_CTRLA_DORD | SERCOM_USART_CTRLA_MODE(1/*USART_INT_CLK*/) |
- SERCOM_USART_CTRLA_RXPO(3/*PAD3*/) | SERCOM_USART_CTRLA_TXPO(1/*PAD2*/);
+ SERCOM_USART_CTRLA_RXPO(0/*PAD0*/) | SERCOM_USART_CTRLA_TXPO(1/*PAD2*/);
- SERCOM0->USART.CTRLB.reg = SERCOM_USART_CTRLB_RXEN | SERCOM_USART_CTRLB_TXEN |
+ SERCOM3->USART.CTRLB.reg = SERCOM_USART_CTRLB_RXEN | SERCOM_USART_CTRLB_TXEN |
SERCOM_USART_CTRLB_CHSIZE(0/*8 bits*/);
- SERCOM0->USART.BAUD.reg = (uint16_t)br;
+ SERCOM3->USART.BAUD.reg = (uint16_t)br;
- SERCOM0->USART.CTRLA.reg |= SERCOM_USART_CTRLA_ENABLE;
+ SERCOM3->USART.CTRLA.reg |= SERCOM_USART_CTRLA_ENABLE;
}
//-----------------------------------------------------------------------------
static void uart_putc(char c)
{
- while (!(SERCOM0->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_DRE));
- SERCOM0->USART.DATA.reg = c;
+ while (!(SERCOM3->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_DRE));
+ SERCOM3->USART.DATA.reg = c;
}
//-----------------------------------------------------------------------------