找回密码
 立即注册
查看: 340|回复: 3

为何CAN读取IO口的状态不对?

[复制链接]
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 54 天

    [LV.5]常住居民I

    15

    主题

    222

    回帖

    1193

    积分

    金牌会员

    积分
    1193
    发表于 2023-7-11 20:53:26 | 显示全部楼层 |阅读模式
    STC32G单片机,使用CAN网络通信,IO口P50定义为PWM_POWR;即控制一个变频元件电源的继电器,我用CAN读取这个IO状态发送出来,发现与实际状态不符!例:PWM_POWR = ~PWM_POWR;
                                            TX_BUF[6] = PWM_POWR;
                                            CanSendMsg(0x0666,TX_BUF);//将IO口状态读取并发送出去,但是结果如图1,只有一种状态,但是我随便加入一个变量,IO状态又能被读取出来了?!哪位老师能给讲一下原因吗?

    截屏1,使用图1代码

    截屏1,使用图1代码

    代码方式1

    代码方式1

    代码方式2

    代码方式2

    截屏2,可以正确读取

    截屏2,可以正确读取
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 19:01
  • 签到天数: 160 天

    [LV.7]常住居民III

    9

    主题

    308

    回帖

    3769

    积分

    荣誉版主

    积分
    3769
    发表于 2023-7-11 22:09:12 | 显示全部楼层
    IO改变后加几个nop,写了之后不是立即能读出来的
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9428

    回帖

    1万

    积分

    管理员

    积分
    14003
    发表于 2023-7-11 22:58:04 | 显示全部楼层
    建议外部加个10K上拉电阻,或打开内部新增加的 4K 上拉电阻
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.5]常住居民I

    15

    主题

    222

    回帖

    1193

    积分

    金牌会员

    积分
    1193
     楼主| 发表于 2023-7-11 23:34:21 | 显示全部楼层
    收到,我明天试试
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-15 03:11 , Processed in 0.058342 second(s), 43 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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