[牛人杂谈] IO,输入输出

[复制链接]
1314|14
 楼主| xuanhuanzi 发表于 2018-12-25 15:35 | 显示全部楼层 |阅读模式
在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) 用于字操作

 楼主| xuanhuanzi 发表于 2018-12-25 15:35 | 显示全部楼层
IO的新唐库函数比较容易懂。
gejigeji521 发表于 2018-12-25 21:14 | 显示全部楼层
高祖模式,是不是可以理解相当于什么都没接,内部悬空了。
yiyigirl2014 发表于 2018-12-25 22:30 | 显示全部楼层
IO口的多种模式要理解,才好应用自如。
xinpian101 发表于 2018-12-26 16:31 | 显示全部楼层
准双向比较好用。
捉虫天师 发表于 2018-12-27 00:41 | 显示全部楼层
逻辑组合换成宏替换比较科学。
598330983 发表于 2018-12-29 23:34 来自手机 | 显示全部楼层
高阻态也可以
wanduzi 发表于 2018-12-30 18:57 | 显示全部楼层
官方的例子已经演示的很全面了,几种模式都有。
yiy 发表于 2018-12-30 19:44 | 显示全部楼层
IO功能可以驱动SPI接口这种吧?
huangcunxiake 发表于 2018-12-31 18:21 | 显示全部楼层
一些复用引脚,设置为IO,都要进行配置吧?
 楼主| xuanhuanzi 发表于 2019-1-4 18:16 | 显示全部楼层
huangcunxiake 发表于 2018-12-31 18:21
一些复用引脚,设置为IO,都要进行配置吧?

一般默认是IO功能。
huangcunxiake 发表于 2019-1-7 15:53 | 显示全部楼层
高阻,数字电路里常见的术语,又叫高阻态,指的是电路的一种输出状态,既不是高电平也不是低电平。
高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。
捉虫天师 发表于 2019-1-7 16:44 | 显示全部楼层
开漏输出大致意思:设置引脚输出为“1”时,该引脚处于开漏,也就是相当于浮空状态; 设置引脚输出为“0”时,该引脚将拉低电平。
八层楼 发表于 2019-1-8 10:30 | 显示全部楼层
用处都很多
guanjiaer 发表于 2019-1-8 11:21 | 显示全部楼层
非常感谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

2331

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部