#include void GPIO_Init(void) { SetBit(P4_OE, P42); //电子膨胀阀驱动IO-A P4_OE = P42; GP42 = 0; /*交流风机--输出*/ // GP44 = 0; SetBit(P4_OE, P44); //电子膨胀阀驱动IO-A P4_OE = P42;?? GP44 = 0; /*继电器相关 -- 输出*/ /*PTC_RELAY*/ // GP51 = 0; SetBit(P5_OE, P51); GP51 = 0; /*DJR*/ // GP04 = 0; SetBit(P0_OE, P04); SetBit(P0_PU, P04); GP04 = 0; /*4WAY*/ // GP01 = 0; SetBit(P0_OE, P01); GP01 = 0; SetBit(P0_OE, P07); //电子膨胀阀驱动IO-D P0_OE = P07; GP07 = 0; SetBit(P0_OE, P00); //电子膨胀阀驱动IO-D P0_OE = P07; GP00 = 0; SetBit(P1_OE, P10); //电子膨胀阀驱动IO-C P1_OE = P10; GP10 = 0; SetBit(P4_OE, P41); //电子膨胀阀驱动IO-B P4_OE = P41; GP41 = 0; SetBit(P1_OE, P11); //电子膨胀阀驱动IO-C P1_OE = P10; GP11 = 0; /*LED*/ // GP22 = 0; SetBit(P0_OE, P03); GP03 = 0; } /** * @function PreDriverFalutInt * @brief 预驱故障中断 * @date 2025-10-31 */ void PreDriverFalutInt(void) { // 关闭输出 配置上拉 ClrBit(P0_OE, PIN2); SetBit(P0_PU, PIN2); // 中断源配置为P02 SetReg(LVSR, EXT0CFG0 | EXT0CFG1 | EXT0CFG2, EXT0CFG1); // 清除中断标志位 IF0 = 0; // 配置为下降沿触发 IT01 = 0; IT00 = 1; // 中断触发时自动关闭MOE SetBit(EVT_FILT, INT0_MOE_EN); // 不滤波 ClrBit(EVT_FILT, EFDIV0 | EFDIV1); // 配置中断优先级为最高 SetBit(IP0, PX00 |PX01); // 外部中断0使能 EX0 = 1; } void INT1_Init(void) { ClrBit(P1_OE, P12); // config P11 as input ClrBit(P1_PU, P12); // diasable P11 Pull Up SetBit(P1_IE, P12); // config P11 as input ClrBit(P1_IF, P12); IT11 = 0; IT10 = 1; // 00: rising edge interrupt,01: failing edge interrupt,1x: edge-change mode interrupt SetBit(IP0, PX11); //优先级 SetBit(IP0, PX10); EX1 = 1; // 使能外部中断1, P11位外部中断输入硬件 } /*Value--定时时间,单位ms,最小定时时间8ms,最大定时1800ms*/ void WatchDogConfig(uint32 value, uint8 Status) { SetReg(CCFG1, WDT_EN, (Status ? WDT_EN : 0x00)); WDT_ARR = ((uint16)(65532 - value * 32768 / 1000) >> 8); ClrBit(WDT_CR, WDTF); SetBit(WDT_CR, WDTRF); }