标题: 关于单片机GPIO口输出异常的问题 [打印本页]

作者: yxyxyxyx    时间: 2022-11-29 11:15
标题: 关于单片机GPIO口输出异常的问题
51单片机芯片有一个GPIO口,上拉正常3.3V,下拉正常0V,但是如果先上拉,延时1ms,再下拉,再延时1ms,就是这样:while(1)
{P0_0 = 0;
Delay_ms(1);
P0_0 = 1;      
Delay_ms(1);
}

波形就不对,输出的不是方波,而是三角波,其他的引脚都是正常的,而且这个引脚是PWM的输出引脚,他也不能输出PWM方波,这样的原因可能有哪些

正常的波形:

但是他的波形是这样的:





作者: 人工置顶员    时间: 2022-11-29 17:25
顶一下
作者: SURUBU1976    时间: 2022-11-30 09:08
驱动能力问题,硬件有没有电阻上拉 3V3?
作者: wpppmlah    时间: 2022-11-30 09:28
分析问题,不单是代码,还要给出硬件电路原理图.
作者: Longan.Wang    时间: 2022-11-30 09:28
该上的没上去,该下的没下去,也就是上升下降时间过长(斜率过小),就体现出这个IO口的驱动能力不足。如果把延时调长,应该就能上去也能下来了。如果你配置IO不是推挽输出的话,可以配置成推挽输出试试。
作者: 人中狼    时间: 2022-11-30 10:00
电路和用词问题,看代码并不是上拉,下拉,只是置高,置低而已,上拉,下拉是电路名词,代码是P0口,估计外部电路没接上下拉电阻或引脚内部没设置对
作者: 大漠落日    时间: 2022-11-30 10:51
型号也没有说明白,怎么帮你
作者: xdqfc    时间: 2022-11-30 11:31
即使是最古老的8031,在ms级别的延时下也不可能是这样的波形,除非后级负载有问题,假如是STC单片机,直接设置为推挽输出,应该是可以解决问题的。
作者: zilihangjian    时间: 2022-12-3 09:02
驱动能力不够,可以加达林顿管试试
作者: hhh402    时间: 2022-12-3 11:32
这个很明显是驱动能力不够,有三角波输出证明IO输出正常,现在连1变0都缓慢就不是IO设置的问题了,明显是驱动能力不够,很可能是IO接了一个大于104的电容造成。
作者: cooltao2008    时间: 2022-12-3 15:28
这种东西要结合硬件电路才能分析,单单给出一段程序,是不能精准分析原因的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1