C8051F02x 端口为输入时的设置困惑?

2020-01-19 19:40发布

端口为输入信号时,如下代码:
P3MDOUT = 0x00;                     // P3.7 is open-drain

   P3     |= 0x80;                     // Set P3.7 latch to '1'

为什么还要设置相应的端口值寄存器为高电平?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
kinsno
1楼-- · 2020-01-19 19:54
 精彩回答 2  元偷偷看……
idodi
2楼-- · 2020-01-20 01:39
7年前用过,对于那个时期来说,C8051F给了我太多的惊喜,采用3级指令流水线的51内核,处理能力高达50MIPS,集成AD、DA、USB,数字交叉开关等等,强悍的抗干扰能力,当时简直到了膜拜的程度(我承认我见识比较少)。到后来过度到cm,还真没遇到向C8051F那样好用的交叉开关,几乎可以将复用功能配置到任何IO口。

跑题了。
和51一样,要一个IO作为输入时,要先往输出寄存器写1。具体原因请参照datasheet上关于gpio的部分。
rain73
3楼-- · 2020-01-20 02:39
设置高电平是为了不影响开漏上拉的高电平值。
dengxm2009
4楼-- · 2020-01-20 07:21
rain73 发表于 2015-9-8 23:03
设置高电平是为了不影响开漏上拉的高电平值。

我在问个问题。设置为挽推模式,IO就做为输出,设置为开漏,io就作为输入吗?
modbus
5楼-- · 2020-01-20 11:35
端口值寄存器为0的话输出一直是强驱动的低电平,什么输入也没有,开漏只是对输出高电平来说的
graycker
6楼-- · 2020-01-20 13:56
 精彩回答 2  元偷偷看……

一周热门 更多>