当前位置: 代码迷 >> 单片机 >> ,哪位高手遇到过
  详细解决方案

,哪位高手遇到过

热度:52   发布时间:2016-04-28 15:09:35.0
好奇怪的问题啊,谁遇到过啊
MUC为LPC2138,COM0为232方式,COM1为485方式,转换芯片是MAX487,之前写了一个程序,就是将电脑发来的一串数据原封不动打包再回发给电脑,在COM0上调试通过,接收和发送都是用的中断方式,因为我不喜欢查询法!但是该程序经过适当修改(修改寄存器)用在COM1上的时候,却只能收到数据,发送不正常,我最开始以为是485芯片和其应用电路有问题,但是查了后确认硬件没有问题,后来调试程序时发现改成查询法发送就OK了,这是为什么?谁遇到过同样的问题啊
ARM7 串口中断发送异常 485

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

MUC为LPC2138,COM0为232方式,COM1为485方式,转换芯片是MAX487,之前写了一个程序,就是将电脑发来的一串数据原封不动打包再回发给电脑,在COM0上调试通过,接收和发送都是用的中断方式,因为我不喜欢查询法!但是该程序经过适当修改(修改寄存器)用在COM1上的时候,却只能收到数据,发送不正常,我最开始以为是485芯片和其应用电路有问题,但是查了后确认硬件没有问题,后来调试程序时发现改成查询法发送就OK了,这是为什么?谁遇到过同样的问题啊

记得LPC2138的uart发送是不用中断方式的,接受用中断或查询方式。
今天问题找到了,是因为程序中我留给串口发送数据的时间太短了,数据还没有发出去,我就把MAX487打到接受模式了,不过也很纳闷,这个时间我发现不能小于50ms,不然要么发布出去,要么乱码

可以按波特率算出所需时间的,
近似为,字节数去除(波特率/10)乘1000=所需毫秒
  相关解决方案