找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1540|回复: 10
收起左侧

关于单片机GPIO口输出异常的问题

  [复制链接]
回帖奖励 20 黑币 回复本帖可获得 20 黑币奖励! 每人限 1 次
ID:1043477 发表于 2022-11-29 11:15 | 显示全部楼层 |阅读模式
51单片机芯片有一个GPIO口,上拉正常3.3V,下拉正常0V,但是如果先上拉,延时1ms,再下拉,再延时1ms,就是这样:while(1)
{P0_0 = 0;
Delay_ms(1);
P0_0 = 1;      
Delay_ms(1);
}

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

正常的波形: 4b6772ed9f252451d0b3ce68812465cd.png

但是他的波形是这样的:
bda62da966cdb2843220c33455a45346.png



回复

使用道具 举报

ID:301191 发表于 2022-11-29 17:25 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:507641 发表于 2022-11-30 09:08 | 显示全部楼层
驱动能力问题,硬件有没有电阻上拉 3V3?
回复

使用道具 举报

ID:68189 发表于 2022-11-30 09:28 | 显示全部楼层
分析问题,不单是代码,还要给出硬件电路原理图.
回复

使用道具 举报

ID:77589 发表于 2022-11-30 09:28 | 显示全部楼层
该上的没上去,该下的没下去,也就是上升下降时间过长(斜率过小),就体现出这个IO口的驱动能力不足。如果把延时调长,应该就能上去也能下来了。如果你配置IO不是推挽输出的话,可以配置成推挽输出试试。
回复

使用道具 举报

ID:384109 发表于 2022-11-30 10:00 | 显示全部楼层
电路和用词问题,看代码并不是上拉,下拉,只是置高,置低而已,上拉,下拉是电路名词,代码是P0口,估计外部电路没接上下拉电阻或引脚内部没设置对
回复

使用道具 举报

ID:195496 发表于 2022-11-30 10:51 | 显示全部楼层
型号也没有说明白,怎么帮你
回复

使用道具 举报

ID:368534 发表于 2022-11-30 11:31 | 显示全部楼层
即使是最古老的8031,在ms级别的延时下也不可能是这样的波形,除非后级负载有问题,假如是STC单片机,直接设置为推挽输出,应该是可以解决问题的。
回复

使用道具 举报

ID:799053 发表于 2022-12-3 09:02 | 显示全部楼层
驱动能力不够,可以加达林顿管试试
回复

使用道具 举报

ID:491577 发表于 2022-12-3 11:32 | 显示全部楼层
这个很明显是驱动能力不够,有三角波输出证明IO输出正常,现在连1变0都缓慢就不是IO设置的问题了,明显是驱动能力不够,很可能是IO接了一个大于104的电容造成。
回复

使用道具 举报

ID:1013961 发表于 2022-12-3 15:28 | 显示全部楼层
这种东西要结合硬件电路才能分析,单单给出一段程序,是不能精准分析原因的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表