好奇怪的问题啊,谁遇到过啊
MUC为LPC2138,COM0为232方式,COM1为485方式,转换芯片是MAX487,之前写了一个程序,就是将电脑发来的一串数据原封不动打包再回发给电脑,在COM0上调试通过,接收和发送都是用的中断方式,因为我不喜欢查询法!但是该程序经过适当修改(修改寄存器)用在COM1上的时候,却只能收到数据,发送不正常,我最开始以为是485芯片和其应用电路有问题,但是查了后确认硬件没有问题,后来调试程序时发现改成查询法发送就OK了,这是为什么?谁遇到过同样的问题啊
记得LPC2138的uart发送是不用中断方式的,接受用中断或查询方式。今天问题找到了,是因为程序中我留给串口发送数据的时间太短了,数据还没有发出去,我就把MAX487打到接受模式了,不过也很纳闷,这个时间我发现不能小于50ms,不然要么发布出去,要么乱码
可以按波特率算出所需时间的,
近似为,字节数去除(波特率/10)乘1000=所需毫秒