FAQS32K1xx SDK中LIN读取信号"原子"操作的一种非中断的方式

Q:S32K1xx的SDK中的LIN协议栈的读信号是否是原子操作?
更新时间:2022.03.21 浏览量:0

S32K1xx系列的SDK的LIN读取信号的方式是通过PE直接生成的,如:

    如果在调用这个接口还没有执行完的时候,LIN总线更新了该信号,然后中断返回接着读取该信号,就会出现信号内容不一致的情况,这不是原子操作。

    实现读LIN信号的原子操作的常规方式,读取信号之前关闭LIN串口中断,读取完信号后再开LIN串口中断,这种方式的话可能由于一些原因,比如软件实现自动波特率,就可能会导致LIN通信失败,这时就不能用这种方式。

    另一种替代方式为判断标志位的方式,如果在读取信号值完成后标志改变,就再次读取该信号值一次。

  • 上一篇:S32K11x+AS8579液位检测减少环境干扰方法
  • 下一篇:S32K1xx的SDK中的LIN协议栈实现写信号原子操作的方式