先说一下软硬件:
硬件:主控stm32c8t6、485芯片为隔离型芯片ADM2483,调试工具是usb转485接到PC端。
软件:采用库函数开发,开发工具为IAR 7.10,485接的是stm32的串口1(收发都是用中断方式),半双工模式, 协议是MODBUS RTU。
先说明本人是菜鸟,在不断得学习中,欢迎指出错误。
最近在调试RS485时发现一个问题,如果在串口初始化时就使能了发送中断和接收的话,那么在发送一个字节后就会自动进入接收中断。可能是收发的机制没有定好,所以后面采用的方式是在初始化时使能了接收中断,关闭发送中断,在需要发送数据的时候再开启发送中断,发送的时候关闭接收中断,发送完一帧再使能接收中断。这样就可以完整地发送一帧数据出去了。
但是随之而来的问题就是,板子没有接收到数据的时候也会进入接收中断,通常是00、F0、C0、FE、80这样的数据,让我觉得很奇怪,心想是不是串口工具有干扰,于是我就把串口工具拔了,结果还是会进入接收中断,收到的数据还是之前那些。初步判定是硬件问题,因为硬件是之前的同事留下的,所以硬件我也不清楚能不能用;在查阅了许多网友的问题后,有一点给我提示了,就是