| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*********************************************************************************************************
- * Module : haddr
- * Abstract :
- * Version : 1.0.0
- * Author : Leopul(COPYRIGHT 2025 ~ 2027 Leopul. All rights reserved.)
- * Complete : 2025-04-18
- * Content : None
- * Note : None
- *********************************************************************************************************/
- #include "haddr.h"
- #include "common.h"
- #include "gd32e23x.h"
- #define HADDR_1 GPIO_PIN_7
- #define HADDR_2 GPIO_PIN_6
- #define HADDR_3 GPIO_PIN_12
- #define HADDR_4 GPIO_PIN_8
- #define HADDR_5 GPIO_PIN_10
- void haddr_init(void)
- {
- uint8_t addr = 0;
- board_t *board = get_board();
- //rcu_periph_clock_enable(HADDR_1_4_RCU);
- //rcu_periph_clock_enable(HADDR_5_RCU);
- rcu_periph_clock_enable(RCU_GPIOF);
- rcu_periph_clock_enable(RCU_GPIOA);
- rcu_periph_clock_enable(RCU_GPIOB);
-
- gpio_mode_set(GPIOF, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, HADDR_1|HADDR_2);
- gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, HADDR_3|HADDR_4);
- gpio_mode_set(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP,HADDR_5);
- addr |= ((gpio_input_bit_get(GPIOF,HADDR_1)) ? 0 : 1) << 0;
- addr |= ((gpio_input_bit_get(GPIOF,HADDR_2)) ? 0 : 1) << 1;
- addr |= ((gpio_input_bit_get(GPIOA,HADDR_3)) ? 0 : 1) << 2;
- addr |= ((gpio_input_bit_get(GPIOA,HADDR_4)) ? 0 : 1) << 3;
- addr |= ((gpio_input_bit_get(GPIOB,HADDR_5)) ? 0 : 1) << 4;
- board->haddr = (addr) & 0x1f;
- }
|