| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #include "Relay.h"
- #include "gd32e230x_conf.h"
- static void ConfigRelayGPIO(void); //配置Relay的GPIO
- static void ConfigRelayGPIO(void)
- {
- #if (RelaySlaveChaNum == 6)
- rcu_periph_clock_enable(RELAY_1_RCU); // gpioA
- rcu_periph_clock_enable(RELAY_2_6_RCU); // gpioB
-
- gpio_mode_set(RELAY_1_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_1);
- gpio_output_options_set(RELAY_1_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1);
- gpio_bit_reset(RELAY_1_IO, RELAY_1);
-
- gpio_mode_set(RELAY_2_6_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_2);
- gpio_output_options_set(RELAY_2_6_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_2);
- gpio_bit_reset(RELAY_2_6_IO, RELAY_2);
-
- gpio_mode_set(RELAY_2_6_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_3);
- gpio_output_options_set(RELAY_2_6_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_3);
- gpio_bit_reset(RELAY_2_6_IO, RELAY_3);
-
-
- gpio_mode_set(RELAY_2_6_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_4);
- gpio_output_options_set(RELAY_2_6_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_4);
- gpio_bit_reset(RELAY_2_6_IO, RELAY_4);
-
-
- gpio_mode_set(RELAY_2_6_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_5);
- gpio_output_options_set(RELAY_2_6_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_5);
- gpio_bit_reset(RELAY_2_6_IO, RELAY_5);
-
-
- gpio_mode_set(RELAY_2_6_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_6);
- gpio_output_options_set(RELAY_2_6_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_6);
- gpio_bit_reset(RELAY_2_6_IO, RELAY_6);
- #elif ((RelaySlaveChaNum <= 4) && !(SUPPORT_TWIN_FIRE))
- //使能RCU相关时钟
- rcu_periph_clock_enable(RCU_GPIOA); //使能GPIOA的时钟
- gpio_mode_set(RELAY_1_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_1); //设置GPIO模式
- gpio_output_options_set(RELAY_1_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_1_RCU, RELAY_1); //将Relay_1默认状态设置为关闭
- //使能RCU相关时钟
- rcu_periph_clock_enable(RCU_GPIOB); //使能GPIOB的时钟
- gpio_mode_set(RELAY_2_4_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_2); //设置GPIO模式
- gpio_output_options_set(RELAY_2_4_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_2); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_4_RCU, RELAY_2); //将Relay_2默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_4_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_3); //设置GPIO模式
- gpio_output_options_set(RELAY_2_4_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_3); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_4_RCU, RELAY_3); //将Relay_3默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_4_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_4); //设置GPIO模式
- gpio_output_options_set(RELAY_2_4_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_4); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_4_RCU, RELAY_4); //将Relay_4默认状态设置为关闭
- #else
- //使能RCU相关时钟
- rcu_periph_clock_enable(RCU_GPIOA); //使能GPIOA的时钟
- //使能RCU相关时钟
- rcu_periph_clock_enable(RCU_GPIOB);
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_8); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_8); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_8); //将Relay_8默认状态设置为关闭
-
- //使能GPIOA的时钟
- gpio_mode_set(RELAY_1_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_1); //设置GPIO模式
- gpio_output_options_set(RELAY_1_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_1_RCU, RELAY_1); //将Relay_1默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_2); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_2); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_2); //将Relay_2默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_3); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_3); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_3); //将Relay_3默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_4); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_4); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_4); //将Relay_4默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_5); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_5); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_5); //将Relay_5默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_6); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_6); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_6); //将Relay_6默认状态设置为关闭
-
- gpio_mode_set(RELAY_2_8_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, RELAY_7); //设置GPIO模式
- gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_7); //设置GPIO输出模式及速度
- gpio_bit_reset(RELAY_2_8_RCU, RELAY_7); //将Relay_7默认状态设置为关闭
- #endif
-
-
- }
- /*********************************************************************************************************
- * 函数名称:InitRelay
- * 函数功能:初始化LED模块
- * 输入参数:void
- * 输出参数:void
- * 返 回 值:void
- * 创建日期:2021年07月01日
- * 注 意:
- *********************************************************************************************************/
- void InitRelay(void)
- {
- ConfigRelayGPIO();
- }
- #if SURPPORT_2_2
- void solid_on()
- {
- gpio_bit_set(RELAY_2_4_RCU, RELAY_3);
- gpio_bit_set(RELAY_2_4_RCU, RELAY_4);
- }
- #endif
|