在M05x系列的IO有四种状态。
一,
1.输入模式,I/O引脚为三态(高阻),没有输出驱动能力。
2.输出模式,I/O支持数字输出功能,有source/sink电流能力。
3.开漏模式,I/O支持数字输出功能,仅有sink电流能力, 一颗
外加上接电阻用于驱动到高状态。
4.准双端模式,I/O同时支持数字输出和输入功能,但source
电流仅达数百uA。
(详情以芯片手册为准)
5.官网的宏定义,
#define GPIO_PMD_INPUT 0x0UL
#define GPIO_PMD_OUTPUT 0x1UL
#define GPIO_PMD_OPEN_DRAIN 0x2UL
#define GPIO_PMD_QUASI 0x3UL
二,配置IO
设置IO为普通IO
SYS->P1_MFP &= ~(SYS_MFP_P12_Msk );
SYS->P2_MFP |= (SYS_MFP_P12_GPIO );
1.官网例程库定义
GPIO_SetMode(P1, BIT2, GPIO_PMD_OUTPUT);
GPIO_SetMode(P4, BIT1, GPIO_PMD_INPUT);
2.输出
Pxx = 数值;
例如,P12 = 0;直接的位操作
#define GPIO_PIN_ADDR(port, pin) (*((volatile uint32_t *)((GPIO_PIN_DATA_BASE+(0x20*(port))) + ((pin)<<2))))
GPIO_PIN_ADDR(port, pin) 用于字操作
|