TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP432 串口DMA传输异常

在做一个432的项目,用的432的A1uart通道,另一头连了一个通讯模块SIM7600。想实现的功能的是利用SIM7600的4G功能,通过无线网连接服务器,然后将432采集的数据通过tcp/ip协议发送给服务器。

先用432设置好SIM7600的网络功能,连上服务器,进入发送模式;然后用的DMA传输,将数据(几十k几M不等)传输至A1口。单次DMA只发送1024字节,用了个DMA中断,里面设了个发送完毕标志位,判断单次传输是否发送完毕,主程序中用的while等待标志位被改变,被改了就继续下面操作,没改的话,就一直等待。然后SIM7600自己将数据发给服务器。

现在遇到个问题,连上SIM7600,一切设置好开始DMA传输数据之后。假如是4包数据,前两包能发出去,然后就卡在等待标志位被改变的while循环里了,这个标志位一直没有被改变。我调试的时候,连在一起跑就只能发1,2包;但是如果在每包发完的地方打个断点,4次断点都可以接收到,而且发送一点问题也没有。我以为是延时的问题,在我打断点的后面加个延时程序也没有用,也只能发1,2包。

不知道什么情况,为什么有这种连续跑进不了中断,单步调试又可以进中断的情况。求教各位。

查了下卡住的时候DMA寄存器的值,是图1,里面有2个地方和正常的时候不一样(图2),看了半天没看懂。。

图1

图2

yunhao cui:

是不是大家都去过节了,没人。。

yunhao cui:

过完节了,顶一波问题。。后来想了想,单步调试能通过,直接跑过不了,会不会是我写的程序比较烂。有时候一个段落里代码太多会不会出现这样的bug

赞(0)
未经允许不得转载:TI中文支持网 » MSP432 串口DMA传输异常
分享到: 更多 (0)