而且,我的问题是烧写到FLASH以后再仿真正常,断掉仿真器直接运行就不行
为了确保是否真的烧写flash成功并上电跑起来了 建议加个LED灯等看看
接入仿真器有可能是代码在RAM中运行
还有复位一下看看 不知道你的复位是怎么设计的 硬件复位看看能不能上电自复位 zhangmangui 发表于 2016-10-10 22:20
不知道你的复位是怎么设计的 硬件复位看看能不能上电自复位
现在的情况是,我整个程序大部分都是正常的,SCIB接受外部数据和SCIA发送输入到外部设备这两部分功能是正常运行的,只是SCIA接收部分出了问题,硬件电路方面应该没问题,因为是我自己做的开发板,在上面已经做过几个小程序了, zhangmangui 发表于 2016-10-10 22:20
不知道你的复位是怎么设计的 硬件复位看看能不能上电自复位
最初我认为是SCIA的莫个地方没有使能,但是在Flash烧写后在线仿真的情况下,SCIA是可以正常接收的。搞不明白的是为什么断掉仿真器却不能接收了。 我贴一段我觉得可能有问题的程序,有没有可能是SCIA的发送和接收冲突了
interrupt void ISRTimer0(void)
{
PieCtrl.PIEACK.bit.ACK7=1;
Timer2++;
Timer5++;
if(Timer2==300)
{
Scib_RX();/////////////这是用SCIB做的外部数据接收,功能没问题
Timer2=1;
}
if(Timer2>350)Timer2=1;
if(Timer5==500)
{
Scia_TX();////////////////////这是SCIA的发送,就是DSP处理后的数据由SCIA发送到下一级
Timer6++;
}
if(Timer6==3)
{
Scia_RX();////////////////////这是SCIA的接收,现在就是这块有点问题,这块接受我是按照上面SCIB的接收方法做的,应该没问题
Timer5=1;
Timer6=1;
}
if(Timer5>1600)Timer5=1;
if(Timer6>3)Timer6=1;
}
Mr5Tao 发表于 2016-10-11 20:59
我贴一段我觉得可能有问题的程序,有没有可能是SCIA的发送和接收冲突了
interrupt void ISRTimer0(void)
{
冲突的可能性不大 有优先级 zhangmangui 发表于 2016-10-11 22:30
冲突的可能性不大 有优先级
我在Flash在线仿真的时候DSP可以接收到来自串口助手发的数据,这样是不是证明我的SCIA接收的那部分程序是没有问题的? zhangmangui 发表于 2016-10-11 22:30
冲突的可能性不大 有优先级
我用串口助手通过串口屏厂家配的USB下载器能和串口屏正常通信,串口屏也有返回的数据。然后我用DSP发送同样格式的数据给串口屏,DSP就接收不到串口屏返回的数据。 zhangmangui 发表于 2016-10-11 22:30
冲突的可能性不大 有优先级
我找到问题所在了,其实我的程序是没问题的,因为现在是做开发,我是拿我以前自己做的开发板搭建的一个小的控制平台,但是我的开发板上的SCIA是已经做了RS232的接口,今天下午的时候我意识到可能是焊接的串口对数据的接收有影响,然后我就把板子上的MAX232拆了,结果我再测试就发现整个发送和接收都正常通了。哎,原本只是觉得重新画一块板子麻烦就将就以前的板子用,没想到还多花了不少时间,希望其他朋友能引以为戒,这是个教训,谢谢大神的指点,谢谢! Mr5Tao 发表于 2016-10-12 21:11
我找到问题所在了,其实我的程序是没问题的,因为现在是做开发,我是拿我以前自己做的开发板搭建的一个小 ...
遇到各种问题是正常 zhangmangui 发表于 2016-10-12 21:38
遇到各种问题是正常
谢谢版主指点 问题解决了吗?我也有一个类似的问题,你能帮我看看吗?
https://bbs.21ic.com/icview-1634180-1-1.html lcj97102 发表于 2016-10-15 10:07
问题解决了吗?我也有一个类似的问题,你能帮我看看吗?
https://bbs.21ic.com/icview-1634180-1-1.html ...
我是采用的查询方式,不是中断,我的问题不是程序,是因为我自己画的开发板上SCI外接了max232造成的
页:
1
[2]