JISHUZHAI 发表于 2023-4-20 15:45:01

JISHUZHAI 发表于 2023-4-20 15:33
我选择P0口设置开漏输出模式,启用全部上拉电阻,全对外输出1,拿万用表测量,为P0口什么都是0V?
P0M0 = 0 ...

使用的是STC8H8K64U,打狗棒核心板。另外,选择高阻输入模式,启用上拉电阻后,同样测量,IO口也是0V

JISHUZHAI 发表于 2023-4-20 16:03:26

JISHUZHAI 发表于 2023-4-20 15:33
我选择P0口设置开漏输出模式,启用全部上拉电阻,全对外输出1,拿万用表测量,为P0口什么都是0V?
P0M0 = 0 ...

使用芯片是stc8h8k64U,打狗棒核心板。另外,我设置为高阻输入模式,同样使能上拉电阻,测量引脚电压,也是0V。这个原因是什么引起的?是我板子上芯片版本太低,当时还没有支持,有没有这种可能?

梁工 发表于 2023-4-20 16:03:51

本帖最后由 梁工 于 2023-4-20 22:46 编辑

JISHUZHAI 发表于 2023-4-20 15:33
我选择P0口设置开漏输出模式,启用全部上拉电阻,全对外输出1,拿万用表测量,为P0口什么都是0V?
P0M0 = 0 ...
因为你没有允许操作扩展寄存器,所以设置操作无效。
P_SW2 |= 0x80;   //允许访问扩展寄存器
P0PU = 0xFF;      //允许P0口额外上拉电阻

JISHUZHAI 发表于 2023-4-20 16:14:16

梁工 发表于 2023-4-20 16:03
因为你没有允许操作扩展寄存器,所以设置操作无效。
P_SW2 |= 0x080;   //允许访问扩展寄存器
P0PU = 0xF ...

确实是这个原因,需要先打开扩展寄存器允许。在程序开头添加P_SW2 |= 0x080;解决。感谢梁工

vb2002 发表于 2024-5-23 02:20:33

梁工 发表于 2023-4-20 16:03
因为你没有允许操作扩展寄存器,所以设置操作无效。
P_SW2 |= 0x80;   //允许访问扩展寄存器
P0PU = 0xFF; ...

终于找到,难怪我开不了上拉

vb2002 发表于 2024-5-23 02:21:39

梁工 发表于 2023-4-20 16:03
因为你没有允许操作扩展寄存器,所以设置操作无效。
P_SW2 |= 0x80;   //允许访问扩展寄存器
P0PU = 0xFF; ...

翻了很久手册都没找到,,现在懂了

小飞侠 发表于 2024-5-23 08:16:49

例程里边都有,有问题还是先用官方例程试试
页: 1 [2]
查看完整版本: I/O 口工作模式与上拉电阻的问题