Настройка UART на SAME70

#c #embedded #atmelstudio

#c #embedded #atmelstudio

Вопрос:

Я начинающий с UART и пытаюсь написать код, который тестирует UART0 на SAME70, этот код предполагает, что нужно написать символ, а затем прочитать его. Я искал пример, который помог бы мне понять, как я могу написать простой код для отправки и получения через UART, но я не смог его найти, если кто-нибудь мне поможет, я буду благодарен.

Конфигурация настройки UART.

 /* Define which UART */ #define UART_VERSION UART2   /* Configure console UART. */  sysclk_enable_peripheral_clock(UART_ID);  stdio_serial_init(UART_VERSION, amp;uart_serial_options);  /* Custom Configuration for UART */ void uart_custom_config(void) {  pio_configure(PINS_UART_PIO, PINS_UART_TYPE, PINS_UART_MASK, PINS_UART_ATTR);  pmc_enable_periph_clk(UART_ID);  const sam_uart_opt_t uart_settings = {sysclk_get_cpu_hz() / 2, CONF_UART_BAUDRATE, UART_MR_PAR_NO};  uart_init(UART_VERSION, amp;uart_settings);  uart_enable_interrupt(UART_VERSION, UART_IER_RXRDY);  NVIC_EnableIRQ(UART2_IRQn); }  

функция отправки для UART.

 void sendViaUart(uint8_t data) {  while(!(UART_VERSION-gt;UART_SR amp; UART_SR_TXRDY));   uart_write(UART_VERSION, data); }  

Обработчик UART

 /* UART2 Handler */ void UART2_Handler() {  uint32_t dw_status = uart_get_status(UART_VERSION);   if(dw_status amp; UART_SR_RXRDY)  {  uint8_t received_byte;  uart_read(UART_VERSION, amp;received_byte);  sendViaUart(received_byte);  } }  

и вот главный код.

 int main(void) {  uart_custom_config();  configure_console();   if(SysTick_Config(sysclk_get_cpu_hz() / 1000))  {  puts("-F- Systick configuration errorr");   while(1);  }   char buffer = 'A';   while(1)  {  UART2_Handler();  sendViaUart(buffer);  } }