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.
定时器0 定时500ms。
串口B设置中断接收和发送 波特率115200 普通中断模式未采用FIFO模式
采用FIFO模式后现象还是同样的。
在F28335的定时器0的使用串口发送数据计算机接收。
计算机每10ms给F28335发送12个字节数据
F28335接收到一组数据LED闪烁。
开机工作,F28335红灯闪烁,几十秒后数据红灯不闪烁。28335无法进入串口接收中断。
串口助手显示28335串口发送数据正常。
想请教下有没有大神知道什么原因,怎么解决。
根据你的描述,程序一开始28335是可以接收到数据的,然后过一会就无法进入接受中断函数了,是这样吗?
如果是,那么可能有这么几个原因:
1.可能是中断优先级或者嵌套问题,中断标志没有及时清状态。
2. 建议先不用定时器,只用中断接收数据,然后回传数据给电脑。
3. 电脑用的虚拟的串口吗?建议使用质量好的USB转串口。
应该是你定时器T0和串口接收中断优先级有冲突,可能导致无法进入接收中断里。
刚开始能通信,应该配置没多大问题。不行你用示波器看看串口发送出来的数据是否正确及DEBUG调试看程序是否一直能进中断。
1.电脑发送的频率降低,100ms一次。看看是否会正常。
2.进一步确认。不正常时,是怎样的状态。可以在程序的主循环中。加一个动作。操控一个IO口,周期性翻转电平,看看,出问题,时,是否还有电平翻转。
3.如果出问题时,主循环依然能执行。确定,是否进入了中断函数。通过设置一些标识位,辅助判断。寻找哪里执行不正确
4.如果出问题时,主循环不循环了。那可能是发生了一些异常之类的。要把所有高级的异常都使能。中断都打开。进入任何一个中断。都执行一些内容。看看到底发生了哪个异常。是不是串口中断发生了情况,触发了高级异常。再检查中断哪里发生错误。
你接收到的数据存到哪,有没有可能溢出,串口接收缓冲区有没有及时读取,还有接收中断中有没有清中断标志不然下次无法响应,并且中断程序中不能延时时间太长,之前遇到过。发送程序可以吗,发送故障也会导致整个串口无法工作,也就不能接收。