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.

DSP28035的sci通信问题,仿真器烧录并在线运行没问题,但是在脱机情况下,SCI就接收不到数据

开发环境:CCS3.3

操作系统:WIN7 旗舰32位

芯片:DSP28035

程序结构,一个5ms的主时基中断,一个SCI接收中断,SCI只配置为接收中断功能,一个LED在1秒闪烁由主时基计时,一个LED闪烁当中断接收完一帧数据。,串口设置参数:8位数据,Odd校验,38400波特率,无流控,

现象:使用SEED-XDS510PLUS仿真器烧录到Flash,并在线仿真运行,上位机每隔1秒发送一帧数据,SCI能接收到完整的数据,两个LED一起闪烁。当我拔掉仿真器,通过USB重新上电(USB既),重新打开串口,并通过上位机发送数据,但DSP无法接收到SCI数据,但是DSP的主时基还在运行,有一个LED在闪烁。接着我通过DSP的RST引脚复位DSP,然后就能接收到SCI数据。现在我想解决的是一上电,DSP就能接收到SCI数据,而不是通过复位才能接收到上位机下发的数据。谢谢!

补充下:只有在上位机下发数据的时候进行复位才能接收到,LED才会闪烁。如果仅仅只是上电手动复位的话是没有效果的,不清楚问题可能出现在哪?

  • 已经参考了,但是不知道怎么解决,能指点下吗?怎么通过硬件上解决?
  • 在具有SCI功能的同时 增加如LED控制的功能 固化后上电看看LED工作是否正常 优先确保代码执行支持
    如果执行正常 复位一下看看SCI是否通信正常了 如果正常了建议看看上电自复位设计是否合理
    还有就是代码中的延时等处理 因为在线调试是RAM中跑 效率高很多 flash中会慢一些
  • 我在帖子里又补充了一些描述。至于您说的情况,首先,程序里面有LED控制功能,1秒闪烁,上电后,LED正常闪烁,如果在上位机下发数据的同时进行手动复位就能接收到数据,但是如果仅仅是上电手动复位的话,还是接收不到正常数据,LED会1秒闪烁。找不出问题的源头
  • 我在帖子里又补充了一些描述。您能方便指点下吗?
  • 解决过程:在原来的程序基础上,删除中断接收程序,只留一句接收一个字节的数据,并清除中断标志。经过调试发现一上电能接收到上位机发送过来的SCI数据,不需要通过手动复位。说明问题的源头在接收中断里面。这时候再将原来的中断程序恢复回去,烧录、测试,还是不行;经过一番思考,觉得是接收中断里面程序跑飞,应该有错误的逻辑。再检查一遍,发现中断程序里面有一条return语句。于是就屏蔽后试试,结果真的可以了。最后又经过反复测试,最终确定是这条语句导致的。
    最后谢谢大家的指点!希望我的错误能为别人提供些参考,也感谢TI提供的平台,大家一起进步。