#include "Relay.h" #include "gd32e230x_conf.h" static void ConfigRelayGPIO(void); //配置Relay的GPIO static void ConfigRelayGPIO(void) { //使能RCU相关时钟 rcu_periph_clock_enable(RELAY_RCU); #if (RelaySlaveChaNum >=1) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_1); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1); gpio_bit_reset(RELAY_GPIO, RELAY_1); #endif #if (RelaySlaveChaNum >=2) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_2); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_2); gpio_bit_reset(RELAY_GPIO, RELAY_2); #endif #if (RelaySlaveChaNum >=3) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_3); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_3); gpio_bit_reset(RELAY_GPIO, RELAY_3); #endif #if (RelaySlaveChaNum >=4) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_4); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_4); gpio_bit_reset(RELAY_GPIO, RELAY_4); #endif #if (RelaySlaveChaNum >=5) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_5); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_5); gpio_bit_reset(RELAY_GPIO, RELAY_5); #endif #if (RelaySlaveChaNum >=6) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_6); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_6); gpio_bit_reset(RELAY_GPIO, RELAY_6); #endif #if (RelaySlaveChaNum >=7) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_7); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_7); gpio_bit_reset(RELAY_GPIO, RELAY_7); #endif #if (RelaySlaveChaNum >=8) gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_8); gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_8); gpio_bit_reset(RELAY_GPIO, RELAY_8); #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