rp2040 move uart id to board specific

This commit is contained in:
hathach 2021-01-27 16:37:31 +07:00
parent 1abf9eeb80
commit 4fef2ddb4c
6 changed files with 34 additions and 11 deletions

View File

@ -55,10 +55,6 @@ int main(void)
{ {
uint32_t interval_ms = board_button_read() ? BLINK_PRESSED : BLINK_UNPRESSED; uint32_t interval_ms = board_button_read() ? BLINK_PRESSED : BLINK_UNPRESSED;
// uart echo
// uint8_t ch;
// if ( board_uart_read(&ch, 1) ) board_uart_write(&ch, 1);
// Blink every interval ms // Blink every interval ms
if ( !(board_millis() - start_ms < interval_ms) ) if ( !(board_millis() - start_ms < interval_ms) )
{ {

View File

@ -35,10 +35,13 @@
#define LED_STATE_ON 1 #define LED_STATE_ON 1
// Button pin is BOOTSEL which is flash CS pin // Button pin is BOOTSEL which is flash CS pin
#define BUTTON_BOOTSEL #define BUTTON_BOOTSEL
#define BUTTON_STATE_ACTIVE 0 #define BUTTON_STATE_ACTIVE 0
#define UART_DEV uart0
#define UART_TX_PIN 0
#define UART_RX_PIN 1
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -35,10 +35,13 @@
#define LED_STATE_ON 1 #define LED_STATE_ON 1
// Button pin is BOOTSEL which is flash CS pin // Button pin is BOOTSEL which is flash CS pin
#define BUTTON_BOOTSEL #define BUTTON_BOOTSEL
#define BUTTON_STATE_ACTIVE 0 #define BUTTON_STATE_ACTIVE 0
#define UART_DEV uart0
#define UART_TX_PIN 0
#define UART_RX_PIN 1
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -36,10 +36,14 @@
#define LED_STATE_ON 1 #define LED_STATE_ON 1
// Button pin is BOOTSEL which is flash CS pin // Button pin is BOOTSEL which is flash CS pin
#define BUTTON_BOOTSEL #define BUTTON_BOOTSEL
#define BUTTON_STATE_ACTIVE 0 #define BUTTON_STATE_ACTIVE 0
#define UART_DEV uart0
#define UART_TX_PIN 0
#define UART_RX_PIN 1
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -35,10 +35,13 @@
#define LED_STATE_ON 1 #define LED_STATE_ON 1
// Button pin is BOOTSEL which is flash CS pin // Button pin is BOOTSEL which is flash CS pin
#define BUTTON_BOOTSEL #define BUTTON_BOOTSEL
#define BUTTON_STATE_ACTIVE 0 #define BUTTON_STATE_ACTIVE 0
#define UART_DEV uart0
#define UART_TX_PIN 0
#define UART_RX_PIN 1
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -78,7 +78,6 @@ bool __no_inline_not_in_flash_func(get_bootsel_button)() {
void board_init(void) void board_init(void)
{ {
setup_default_uart();
gpio_init(LED_PIN); gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT); gpio_set_dir(LED_PIN, GPIO_OUT);
@ -86,6 +85,12 @@ void board_init(void)
#ifndef BUTTON_BOOTSEL #ifndef BUTTON_BOOTSEL
#endif #endif
#ifdef UART_DEV
uart_init(UART_DEV, CFG_BOARD_UART_BAUDRATE);
gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);
#endif
// todo probably set up device mode? // todo probably set up device mode?
#if TUSB_OPT_DEVICE_ENABLED #if TUSB_OPT_DEVICE_ENABLED
@ -116,18 +121,27 @@ uint32_t board_button_read(void)
int board_uart_read(uint8_t* buf, int len) int board_uart_read(uint8_t* buf, int len)
{ {
#ifdef UART_DEV
for(int i=0;i<len;i++) { for(int i=0;i<len;i++) {
buf[i] = uart_getc(uart_default); buf[i] = uart_getc(UART_DEV);
} }
return len;
#else
return 0; return 0;
#endif
} }
int board_uart_write(void const * buf, int len) int board_uart_write(void const * buf, int len)
{ {
#ifdef UART_DEV
char const* bufch = (uint8_t const*) buf;
for(int i=0;i<len;i++) { for(int i=0;i<len;i++) {
uart_putc(uart_default, ((char *)buf)[i]); uart_putc(UART_DEV, bufch[i]);
} }
return len;
#else
return 0; return 0;
#endif
} }
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+