打印

哪位使用过SC16C550B扩展串口的,为什么我的只能收数据不能发数据?

[复制链接]
1364|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lishong|  楼主 | 2015-3-28 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的DSP 5509a通过CPLD来控制SC16C550B.目前遇到的问题是仪器能收到PC串口发来的数据;而仪器发送数据总不成功。
初始化段:
        LCR = 0x80;
        DLL = 0x18;   
        DLM = 0x00;  
        LCR = 0x03;   
        FCR = 0x01;
        MCR = 0x20;
        IER = 0x00;
寄存器的写设置通过读寄存器验证是正确的。而且收数据也没问题。
下面是发送数据到PC段:
for(i = 0; i < 8 ; i++)
{
    do
    {
            uWork = LSR;
    } while ( (uWork&0x40) != 0x40 );
    THR= 0x55;
}
执行完第一次THR = 0x55后,uWork的值总是0,也就是FIFO总不是为空,发不出去。

相关帖子

沙发
沙啸| | 2015-3-29 17:21 | 只看该作者
楼主,小弟遇到的问题是发送的数据接收不到,怀疑是串口助手的问题,我用的是TMS320F2812,请问你用的是哪款串口助手啊

使用特权

评论回复
板凳
lishong|  楼主 | 2015-3-30 14:02 | 只看该作者
我的不是串口调试工具的问题的了。我怀疑是SC16C550B的问题。有空整片TI的16c550来试试。感觉DSP 5509A AWE与sc16c550B iow的active宽度不匹配。

使用特权

评论回复
地板
zwww| | 2015-3-30 14:18 | 只看该作者
赚积分

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

137

帖子

3

粉丝