/********************************************************************************************************* * 模块名称:Sn74hc573.c * 摘 要:Key模块,进行独立按键初始化,以及按键扫描函数实现 * 当前版本:1.0.0 * 作 者:anycrying * 完成日期:2024年04月11日 * 内 容: * 注 意: ********************************************************************************************************** * 取代版本: * 作 者: * 完成日期: * 修改内容: * 修改文件: *********************************************************************************************************/ /********************************************************************************************************* * 包含头文件 *********************************************************************************************************/ #include "Sn74hc573.h" #include "gd32e230x_conf.h" /********************************************************************************************************* * 宏定义 *********************************************************************************************************/ /********************************************************************************************************* * 枚举结构体 *********************************************************************************************************/ /********************************************************************************************************* * 内部变量定义 *********************************************************************************************************/ /********************************************************************************************************* * 内部函数声明 *********************************************************************************************************/ static void Config74hc573GPIO(void); //配置按键的GPIO /********************************************************************************************************* * 内部函数实现 *********************************************************************************************************/ /********************************************************************************************************* * 函数名称:Config74hc573GPIO * 函数功能:配置74hc573端口 * 输入参数:void * 输出参数:void * 返 回 值:void * 创建日期:2024年04月11日 * 注 意: *********************************************************************************************************/ static void Config74hc573GPIO(void) { //使能RCU相关时钟 rcu_periph_clock_enable(LOCK_74hc573_RCU); //使能GPIOF的时钟 rcu_periph_clock_enable(LOCK_74hc573_RCU); //使能GPIOC的时钟 gpio_mode_set(LOCK_74hc573_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, LOCK_74hc573_OE); //配置PF6为输出 控制573的使能 gpio_output_options_set(LOCK_74hc573_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_74hc573_OE); //设置GPIO输出模式及速度 gpio_bit_reset(LOCK_74hc573_IO, LOCK_74hc573_OE); //将LOCK_74hc573_OE默认状态设置为不使能 gpio_mode_set(LOCK_74hc573_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLDOWN, LOCK_74hc573_LE); //配置PF7为输出,输出低电平则保持缓存 gpio_output_options_set(LOCK_74hc573_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_74hc573_LE); //设置GPIO输出模式及速度 BUFF_Data; gpio_mode_set(CHECK_JLINK_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, CHECK_JLINK_IN); //配置PC14为上拉输入,检测有下载器接入 } /********************************************************************************************************* * API函数实现 *********************************************************************************************************/ /********************************************************************************************************* * 函数名称:Init_74hc573 * 函数功能:初始化74hc573模块 * 输入参数:void * 输出参数:void * 返 回 值:void * 创建日期:2024年04月11日 * 注 意: *********************************************************************************************************/ void Init_74hc573(void) { Config74hc573GPIO(); //配置74HC573的GPIO } /********************************************************************************************************* * 函数名称:Write_74hc573 * 函数功能:锁存输出数据 * 输入参数:void * 输出参数:void * 返 回 值:void * 创建日期:2024年04月11日 * 注 意: *********************************************************************************************************/ void Write_74hc573(void) { uint8_t i = 0; BUFF_Data; LOCK_Data; for(i = 0;i < 72;i++); BUFF_Data; }