找回密码
 立即注册
查看: 1267|回复: 12

这种情况,是不是IO口的输入模块坏了?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-12-15 11:39:35 | 显示全部楼层 |阅读模式
本帖最后由 xxkj2010 于 2023-12-15 13:50 编辑

昨天用以前自制的STC12C5A60S2实验板进行实验的时候,发觉P01的输入功能可能失效,于是用下面的代码进行输入输出功能测试:

  1. void main()
  2. {
  3. UartInit();//串口、定时器初始化
  4. init_LCD();//初始化LCD1602
  5. delay_ms(10);//等待
  6. while(1)
  7. {
  8. P01=1;delay_ms(500);
  9. if(P01==1)printf("P01=1");//串口发送字符
  10. P01=0;delay_ms(500);
  11. if(P01==0)printf("P01=0");//串口发送字符
  12. }
  13. }
复制代码
结果串口打印如下:
2023-12-14.jpg


用数字表测量P01口的电平,变化正常!
而从串口的打印信息可以看出,芯片无法检测到IO口的输入状态。
像这样的现象,是不是IO口的输入模块坏了,属于硬件问题了?


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-15 14:10:00 | 显示全部楼层
从显示数据上看, P01 读到的数据为 1 , 你把 P01 脚接地, 上电直接读 P01脚数据看看, 如不是 0 , 则肯定是坏了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-12-15 15:00:15 | 显示全部楼层
LAO*** 发表于 2023-12-15 14:10
从显示数据上看, P01 读到的数据为 1 , 你把 P01 脚接地, 上电直接读 P01脚数据看看, 如不是 0 , 则肯定是 ...

用数字表测量电压数值,反映的数据正常的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-15 15:07:26 | 显示全部楼层
数字表测量电压数值, 只代表外部电压, 或 OUT 输出电压, 你 怀疑 输入 部分 坏 了 , 需验证的是 输入, CPU 必须能读到 外部输入 变化.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-12-15 16:15:56 | 显示全部楼层
LAO*** 发表于 2023-12-15 15:07
数字表测量电压数值, 只代表外部电压, 或 OUT 输出电压, 你 怀疑 输入 部分 坏 了 , 需验证的是 输入, CPU  ...

P01=0;控制P01为低电压,且数字表测得到了0V,这样不是把IO口拉低了吗?

点评

我让你开机直接 读 外部输入 .  详情 回复 发表于 2023-12-15 18:15
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-15 18:15:56 | 显示全部楼层
xxkj*** 发表于 2023-12-15 16:15
P01=0;控制P01为低电压,且数字表测得到了0V,这样不是把IO口拉低了吗?

我让你开机直接 读 外部输入 .

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-15 18:18:24 | 显示全部楼层
P1.0 置位 清 0 , 全去掉
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-15 18:22:34 | 显示全部楼层
实际上, 你设置 开漏模式,  准双向模式 , 输入模式 , 可以读到 输入信号,

如果设置成 强推挽模式,  一辈子都 读不到 输入信号,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-12-15 20:30:02 | 显示全部楼层
LAO*** 发表于 2023-12-15 18:22
实际上, 你设置 开漏模式,  准双向模式 , 输入模式 , 可以读到 输入信号,

如果设置成 强推挽模式,  一辈 ...

没有设置,这些老型号默认是准双向模式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-12-15 20:36:28 | 显示全部楼层
LAO*** 发表于 2023-12-15 14:10
从显示数据上看, P01 读到的数据为 1 , 你把 P01 脚接地, 上电直接读 P01脚数据看看, 如不是 0 , 则肯定是 ...

试了,P01接地,上电直接读取P01,依然被认为高电平。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:21 , Processed in 0.124477 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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