找回密码
 立即注册
查看: 457|回复: 11

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

[复制链接]
  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

    积分
    2890
    发表于 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口的输入模块坏了,属于硬件问题了?


    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4130

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

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

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

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4130

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

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

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

    点评

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

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4130

    积分

    荣誉版主

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

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

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4130

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4130

    积分

    荣誉版主

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

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

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

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

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:36
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-19 02:18 , Processed in 0.074135 second(s), 71 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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