lpc812 MCU中有一个SWM功能,使开发人员能够将每个外围设备(如SPI,UART & ...)分配给所需的GPIO引脚,但一些特殊的外围设备仅在默认状态下分配给一些固定引脚,在LPCOPEN中用于分配这些引脚的新外设必须首先禁用其固定引脚的功能:
Chip_SWM_DisableFixedPin(SWM_FIXED_VDDCMP);
其中SWM_FIXED_VDDCMP是以下枚举的成员
typedef enum CHIP_SWM_PIN_FIXED {
SWM_FIXED_ACMP_I1 = 0, /*!< ACMP I1 */
SWM_FIXED_ACMP_I2 = 1, /*!< ACMP I2 */
SWM_FIXED_SWCLK = 2, /*!< SWCLK */
SWM_FIXED_SWDIO = 3, /*!< SWDIO */
SWM_FIXED_XTALIN = 4, /*!< XTALIN */
SWM_FIXED_XTALOUT = 5, /*!< XTALOUT */
SWM_FIXED_RST = 6, /*!< Reset */
SWM_FIXED_CLKIN = 7, /*!< Clock Input */
SWM_FIXED_VDDCMP = 8 /*!< VDD */
} CHIP_SWM_PIN_FIXED_T;
正如您在 ACMP1 和 ACMP2 中所做的那样,它们相当于 GPIO 0.0 和 GPIO 0.1 但对于其他例如 SWM_FIXED_VDDCMP 它是 GPIO 0.6 和枚举的第 9 个成员。如您在上面看到的示例:Chip_SWM_DisableFixedPin(SWM_FIXED_VDDCMP);
从引脚 6 禁用 VDDCMP 固定功能,然后我们可以为该引脚分配新的外设,但在数据表中 VDDCMP 是引脚 6,但在枚举中它等于 8,为什么?