| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*********************************************************************************************************
- * 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_4_RCU RCU_GPIOB
- #define HADDR_5_RCU RCU_GPIOA
- #define HADDR_1_4_IO GPIOB
- #define HADDR_5_IO GPIOA
- #define HADDR_1 GPIO_PIN_4
- #define HADDR_2 GPIO_PIN_5
- #define HADDR_3 GPIO_PIN_6
- #define HADDR_4 GPIO_PIN_7
- #define HADDR_5 GPIO_PIN_15
- 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);
- gpio_mode_set(HADDR_1_4_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, HADDR_1|HADDR_2|HADDR_3|HADDR_4);
- gpio_mode_set(HADDR_5_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP,HADDR_5);
- addr |= ((gpio_input_bit_get(HADDR_1_4_IO,HADDR_1)) ? 0 : 1) << 0;
- addr |= ((gpio_input_bit_get(HADDR_1_4_IO,HADDR_2)) ? 0 : 1) << 1;
- addr |= ((gpio_input_bit_get(HADDR_1_4_IO,HADDR_3)) ? 0 : 1) << 2;
- addr |= ((gpio_input_bit_get(HADDR_1_4_IO,HADDR_4)) ? 0 : 1) << 3;
- addr |= ((gpio_input_bit_get(HADDR_5_IO,HADDR_5)) ? 0 : 1) << 4;
- board->haddr = (addr) & 0x1f;
- }
|