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

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

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

    [LV.5]常住居民I

    15

    主题

    222

    回帖

    1205

    积分

    金牌会员

    积分
    1205
    发表于 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的每日心情
    开心
    4 小时前
  • 签到天数: 164 天

    [LV.7]常住居民III

    9

    主题

    310

    回帖

    3789

    积分

    荣誉版主

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

    使用道具 举报

    该用户从未签到

    552

    主题

    9546

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

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

    [LV.5]常住居民I

    15

    主题

    222

    回帖

    1205

    积分

    金牌会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 21:17 , Processed in 0.058222 second(s), 43 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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