我使用的是创龙的TL6748F-EasyEVM-A2开发板,在仿真中断接收过程中,暂停后点击restart后程序无法再次接收到数据,也无法进入中断。但是串口接收寄存器的数值还是一直在变动,请问这是什么原因造成的呢?只有重新断电重启开发板后才可以重新进入中断,重新接收数据。
Nancy Wang:
打断点调试会出现这样的情况吗?
风雨潇潇姿容姣姣:
回复 Nancy Wang:
打断点后点击run还可以继续跑,我重复这样操作多次还是能进入中断,但是当我结束仿真后,未重启开发板,后面再进入仿真就无法进入中断和接收数据了。但是接收寄存器自然会不断更新自身的值
风雨潇潇姿容姣姣:
回复 Nancy Wang:
因为我开发板的串口接收是每隔5MS就有一帧59个字节的数据,会不会是因为我没有取出接收到的数据,所以后面再也接收不到数据了。如果是这种情况,应该怎么处理呢?我试过将串口的LSR寄存器的OE位清零,但还是不成功
Nancy Wang:
回复 风雨潇潇姿容姣姣:
我的理解是你目前代码其实运行起来是没有问题的,你现在是想要实现不重启开发板的情况下,再次仿真?
建议可以复位一下DSP,然后scrips下重新进行初始化配置,再load程序就可以了。
风雨潇潇姿容姣姣:
回复 Nancy Wang:
是的,您理解得没错。但是只要开发板不断电,我点击reset CPU会跳转到0x700000。重新初始化配置,在我点击restart后再点击run会执行到重新初始化配置。
现在的问题是只要开发板上电后我只有第一次仿真才能接收到完整的数据,后面只要不断电重启,我就无法获取串口接收到的数据,也进不了接收中断。
Nancy Wang:
回复 风雨潇潇姿容姣姣:
我测试一下看看,再给你回复。
风雨潇潇姿容姣姣:
回复 Nancy Wang:
再请问一下您那里有TMS320C6748的基础程序代码吗?
Nancy Wang:
回复 风雨潇潇姿容姣姣:
我用StarterWare中的uart例程试了一下,restart之后串口是可以接收到数据的,不同的是我是通过串口助手发送的,参考看一下。
https://processors.wiki.ti.com/index.php/StarterWare
通常也就以下四种情况能够触发进入中断。你的中断配置中是否有相应的判断。
RLSINT
风雨潇潇姿容姣姣:
回复 Nancy Wang:
老师,您好!您那边的StarterWare用的是什么版本的?您还有什么其他的联系方式吗?例如微信,QQ等即时通信工具。我QQ:294132382;微信号:hxjaizjj;您若方便我们可以即时工具通信,我也好录视频等发给您。
风雨潇潇姿容姣姣:
回复 Nancy Wang:
老师,您好!第一张:关闭仿真后重新Debug时,打开寄存器看到的值IIR=0X06,LSR=0XE3;
第二张:在正常运行时,点击暂停后,再次点击运行,数据可以再次接收,IIR=0X01,LSR=0X20
第三张:在正常运行时,点击暂停时,IIR=0X06,LSR=0X63