Bootstrap

HC32F460_GPIO驱动库

注意: 
        Mcu的在线调试接口有JTAG、SW两类,如采用SW接口,则JTAG对应的TDI、TDO_SWO、TRST管脚则可作为普通IO使用。配置代码如下:

	PORT_DebugPortSetting(TDI,Disable);
	PORT_DebugPortSetting(TDO_SWO,Disable);
	PORT_DebugPortSetting(TRST,Disable);	

0. 测试环境

        测试Mcu        :HC32F460PETB|
        底层库版本    :hc32f460_ddl_Rev2.1.0
        库名               :DrvMcu

1. 设计说明

        建立驱动库GPIO配置表,定义该驱动库对外输出的常规IO口以及相应初始配置。

#define  DRVMIO_DIR_IN			0			//定义IO口初始化进出方向
#define  DRVMIO_DIR_OUT		    1

#define  DRVMIO_STATE_L		    0			//定义IO口初始化高低状态
#define  DRVMIO_STATE_H		    1
#define  DRVMIO_STATE_IDLE		0xFF

typedef struct _STDRVMIOMAP
{//IO口配置信息
	unsigned short	usMcuPinNo;				//Mcu的全局IO编号
	unsigned char	ucDir;					//IO的方向,输入/输出
	unsigned char	ucInitState;			//IO的初始状态,高/低
}STDRVMIOMAP;

注:
        usMcuPinNo : 为Mcu的GPIO定义了一个全局编号,即:0~15对应PortA的0~15;16~31对应PortB的0~15,以此类推。可通过宏定义:

  • const en_port_t m_pstAryPort[]={
    		PortA,
    		PortB,
    		PortC,
    		PortD,
    		PortE,
    	};
    #define DRVM_GETPIN(pin)	(1UL<<(pin&0x0F))
    #define DRVM_GETPORT(pin)	(m_pstAryPort[pin>>4])
    

             m_stIOMap数组的数组序号,即是在DrvM库中该IO口对外输出IO口号,命名为DrvMPinNo,此处定义了DrvMPinNo与McuPinNo之间的对应关系。

    • 2. 全局变量

unsigned short	 m_usDrvMIONum
;