注意:
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 0xFFtypedef 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