This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有关TMS570LS3137中断问题

Ken,你好

          你之前有上传一个关于串口接受中断的例子,如附件。我试着用串口调试助手发数据给板子,但是没有进入中断函数。改程序你有调试成功吗?

         谢谢

        

1881.TMS570LS0432_SCI_ISR.zip
  • weibin,

      这个例程应该能正常调试的。如果有问题的话,我再上传一个给你试试看,这个是基于3137的,发送和接收中断都有使能。

    谢谢

      

  • ken,你好

              我试了你上传的这个例程,结果是失败的。而且有几个问题:你在主函数中调用的sciEnableNotification(scilinREG,SCI_TX_INT);这个函数应该是使能不了发送中断的吧,该函数的语句sci->SETINT  = (flags & ~SCI_TX_INT); 就把发送中断给禁止了。另外,在sciNotification()中,都是空的怎么有反应呀。我在

    if(flags==SCI_RX_INT){ }中加了接收函数,结果还是没有执行{}里的接收函数,我试着在主函数中加接收函数,结果能接收数据。这个又跟你说的不一样。

    谢谢

  • 首先,

       这个例程我在3137的USB stick上实验是没有问题的,我刚又试了一下。串口助手上面的设置我是9600,8位数据,1位停止位。

    sciEnablenotification()函数是使能SCI中断的操作,你可以在sciInit()里面看到接收中断已经置位,但是发送中断没有置位,要使能发送中断的话,还是需要调用这个函数的。另外在中断程序里面scinotification()我只做了一个发送中断的判断,接收中断你可以自己写,或是设一个断点就行。

    另外为了调试方便,你可以在void linHighLevelInterrupt(void)函数的入口处设一个断点,这样比较容易观察每次中断的响应。

    接收中断确实不需要加scireceive()函数,这个函数使用在查询接收的,你可以看程序的语句就明白。

    另外: 你用的硬件是哪块?SCI用的那个口呢?

    谢谢