打印

TL16c550的中断通信问题

[复制链接]
730|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FCCdsp|  楼主 | 2017-5-24 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TL16c550的中断通信问题


用TL16c550与DSp异步通信的,但是出现问题,用查询方式是好使的,但是中断方式为什么不行?
自己慢慢摸索的,不是太懂,请教各位,中断向量表也配置好了!
main()
{
     
         MCWA=0x00080008;
         LCR = 0x80; //使能波特率设置寄存器。DLAB=1.访问除数和功能切换寄存器,奇校验,奇偶校验无效,一个停止位,数据长度5位
        DLL = 0x18; // 波特率9600  
         DLM = 0x00;  
         LCR = 0x03;  // 设置数据格式:无校验,一个停止位,数据长度8位
        FCR = 0x01;//允许FIFO
         MCR = 0x00;//MODE控制
        IER = 0x01; // 使能接收就绪中断   
     InitInterrupt();
     while(1)
          {}
         
}
           
void interrupt XINT4()        //中断响应函数
{
     unsigned int uWork;
     while(LSR&0x01) //接收数据就绪
        {
            uWork=RBR&0xff;//接收数据
           THR=uWork;  //将接收到的数据发送出去
        }

         FCR=0x03;//清空FIFO
}

void InitInterrupt(void)
{
         // 设置中断控制寄存器
        CSR&=0xfffffffe;        // 关中断 GIE=0
         ISTP=0x00000c00;        // 重置中断向量表到0C00h
            IMH=0x0;                        // 指定xint4中断
           IML=0x04;
            ICR=0xff;                        // 清除等待的中断
        IER=0x13;                        // 使能xint4中断
        CSR=CSR|1;                         // 开中断

相关帖子

沙发
minzisc| | 2017-5-24 22:28 | 只看该作者
中断不能通信是不是硬件问题

使用特权

评论回复
板凳
1988020566| | 2017-5-24 22:29 | 只看该作者
怎么不使用RS232芯片。

使用特权

评论回复
地板
xiaoyaodz| | 2017-5-24 22:29 | 只看该作者
这个不知道需不需要开启全局中断。

使用特权

评论回复
5
isseed| | 2017-5-24 22:30 | 只看该作者
这是使用的什么DSP芯片?

使用特权

评论回复
6
lihuami| | 2017-5-24 22:31 | 只看该作者
楼主的配置哪款DSP芯片

使用特权

评论回复
7
minzisc| | 2017-5-24 22:31 | 只看该作者
看看是不是共地连接了。

使用特权

评论回复
8
1988020566| | 2017-5-24 22:31 | 只看该作者
TL16c550没有使用过这个芯片。

使用特权

评论回复
9
xiaoyaodz| | 2017-5-24 22:31 | 只看该作者
楼主确定通信的波特率一致?

使用特权

评论回复
10
isseed| | 2017-5-24 22:31 | 只看该作者
可以使用CSL库配置DSP。

使用特权

评论回复
11
lihuami| | 2017-5-24 22:31 | 只看该作者
这里没有说明芯片种类,无法判断的。

使用特权

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

本版积分规则

967

主题

1447

帖子

9

粉丝