STC8H8K64U开发箱9.6版IO口初始化配置问题
本帖最后由 lclbf 于 2023-12-27 09:41 编辑学习开发箱DEMO程序,发现按照官方配置,P6口输出控制的灯,不需要点亮的LED会有微亮,有强光看不出来。具体情况如下:
P0M1 = 0x30; P0M0 = 0x30; //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
P1M1 = 0x30; P1M0 = 0x30; //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
P2M1 = 0x3c; P2M0 = 0x3c; //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V)
P3M1 = 0x50; P3M0 = 0x50; //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
P4M1 = 0x3c; P4M0 = 0x3c; //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
P5M1 = 0x0c; P5M0 = 0x0c; //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
P6M1 = 0x00; P6M0 = 0x00; //设置为漏极开路(实验箱加了上拉电阻到3.3V)
P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口
上面是DEMO程序中的配置,P6口后面注解说设置为开漏,实际是准双向口。所以直接下载程序,看不出不亮的灯有微亮。
我测试,配置为准双向口和推挽输出,不会出现微亮。设置为高阻输入和开口输出,即使不需要点亮的IO口,设置为高电
平输出,结果都会有微亮。没有想明白是为什么。P6口实际也接了上拉电阻。
单片机是5V减去一个二极管的压降供电,和SYS-VCC电压基本一样。我设置为开漏输出的时候,把不需要点亮的二极管的IO口输出高电平,这样LED该不会出现微亮才对,实际也会出现微亮!
电路简化如下:
开漏输出不是内部没有上下拉电阻吗? 这个问题,下面帖子也有讨论过,可将LED控制接口P6.0 - P6.7设置为推挽输出模式
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=263&pid=34748 lzl1okOK 发表于 2023-12-27 09:15
开漏输出不是内部没有上下拉电阻吗?
外部有上拉电阻 乘风飞扬 发表于 2023-12-27 09:19
这个问题,下面帖子也有讨论过,可将LED控制接口P6.0 - P6.7设置为推挽输出模式
https://www.stcaimcu.com/ ...
谢谢 你的回复,我去看了那个贴,其实就是sys-vcc通过电阻和发光二极管到3.3V形成了回路。我没有想明白为啥推挽输出和准双向口可以不出现微亮。还有个解决办法就是把SYS-VCC换成3.3V,也可以解决。 乘风飞扬 发表于 2023-12-27 09:19
这个问题,下面帖子也有讨论过,可将LED控制接口P6.0 - P6.7设置为推挽输出模式
https://www.stcaimcu.com/ ...
单片机是5V减去一个二极管的压降供电,和SYS-VCC电压基本一样。我设置为开漏输出的时候,把不需要点亮的二极管的IO口输出高电平,这样LED该不会出现微亮才对,实际也会出现微亮! lzl1okOK 发表于 2023-12-27 09:15
开漏输出不是内部没有上下拉电阻吗?
发光二极管发亮肯定是有点流的出现,我觉得SYS_VCC和3.3V肯定有压差,如果设置P6.2为推挽模式的话内部的上拉电阻就会对LED下端放电使LED反向截止就不会发光了
页:
[1]