| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #include "bsp/gpio.h"
- #include "libs/utils.h"
- #define IR2136S_Enable_pin 0
- #define LED1_Enable_pin 1
- #define LED2_Enable_pin 2
- #define LED3_Enable_pin 3
- #define KEY_Start_pin 4
- #define KEY_Stop_pin 5
- #define KEY_Func_pin 6
- /*
- * gpio.c
- * all pins used as gpio(in/out/irq) must be init&accessed here
- */
- const static gpio_pin_config_t _pins[] = {
- #ifdef GD32_FOC_DEMO
- [IR2136S_Enable_pin] = {GPIOA, GPIO_PIN_12, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, 0},
- [LED1_Enable_pin] = {GPIOD, GPIO_PIN_2, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, 0},
- [LED2_Enable_pin] = {0, GPIO_PIN_9, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, 0},
- [LED3_Enable_pin] = {GPIOC, GPIO_PIN_5, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, 0},
- [KEY_Start_pin] = {GPIOB, GPIO_PIN_5, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, 0},
- [KEY_Stop_pin] = {GPIOB, GPIO_PIN_11, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, 0},
- // [KEY_Func_pin] = {GPIOC, GPIO_PIN_0, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, 0},
- #endif
- };
- void gpio_pin_init(void){
- rcu_periph_clock_enable(RCU_GPIOA);
- rcu_periph_clock_enable(RCU_GPIOB);
- rcu_periph_clock_enable(RCU_GPIOC);
- rcu_periph_clock_enable(RCU_GPIOD);
- rcu_periph_clock_enable(RCU_GPIOF);
- rcu_periph_clock_enable(RCU_AF);
-
- for (int i = 0; i < ARRAY_SIZE(_pins); i++){
- if (_pins[i].init_value != -1){
- gpio_bit_write(_pins[i].group, _pins[i].pin, (bit_status)_pins[i].init_value);
- }
- if (_pins[i].group != 0) {
- gpio_init(_pins[i].group, _pins[i].mode, _pins[i].speed, _pins[i].pin);
- }
- }
- #ifdef CONFIG_BEEP
- gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
- gpio_beep(500);
- #endif
-
- }
- void gpio_beep(u32 ms) {
- #ifdef CONFIG_BEEP
- gpio_bit_write(GPIOB, GPIO_PIN_2, SET);
- delay_ms(ms);
- gpio_bit_write(GPIOB, GPIO_PIN_2, RESET);
- #endif
- }
- bool gpio_get_brake(void) {
- return 0;
- }
- void gpio_ir2136_enable(bool enable) {
- #ifdef GD32_FOC_DEMO
- gpio_bit_write(_pins[IR2136S_Enable_pin].group, _pins[IR2136S_Enable_pin].pin, (enable)?SET:RESET);
- #endif
- }
- void gpio_led1_enable(bool enable) {
- #ifdef GD32_FOC_DEMO
- gpio_bit_write(_pins[LED1_Enable_pin].group, _pins[LED1_Enable_pin].pin, (enable)?SET:RESET);
- #endif
- }
- void gpio_led2_enable(bool enable) {
- #ifdef GD32_FOC_DEMO
- //gpio_bit_write(_pins[LED2_Enable_pin].group, _pins[LED2_Enable_pin].pin, (enable)?SET:RESET);
- #endif
- }
- void gpio_led3_enable(bool enable) {
- #ifdef GD32_FOC_DEMO
- gpio_bit_write(_pins[LED3_Enable_pin].group, _pins[LED3_Enable_pin].pin, (enable)?SET:RESET);
- #endif
- }
- int gpio_startkey_value(void) {
- #ifdef GD32_FOC_DEMO
- return gpio_input_bit_get(_pins[KEY_Start_pin].group, _pins[KEY_Start_pin].pin)==SET?1:0;
- #else
- return 1;
- #endif
- }
- int gpio_stopkey_value(void) {
- #ifdef GD32_FOC_DEMO
- return gpio_input_bit_get(_pins[KEY_Stop_pin].group, _pins[KEY_Stop_pin].pin)==SET?1:0;
- #else
- return 1;
- #endif
- }
- int gpio_funckey_value(void) {
- return 0;
- }
|