微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 串口DMA下 HalUARTWrite 问题咨询

串口DMA下 HalUARTWrite 问题咨询

时间:10-02 整理:3721RD 点击:

亲们,

大家有没有遇到这样的情况,我用的TI 的CC2540,用DMA发的数据包,连续这样写两包同样的数据,第二包的第一个byte会丢掉,好奇怪的现象啊!

HalUARTWrite(HAL_UART_PORT_0, ble_To_scale_Serial, ble_To_scale_Serial[1]);

HalUARTWrite(HAL_UART_PORT_0, ble_To_scale_Serial, ble_To_scale_Serial[1]);

 

需要延时!

注意查询发送状态标志!

大秦,

您好!

Halwrite 这个函数应该只是写到缓存里面啊,后面是由DMA自己搬到UART的吧。

你这种现象一般是怎么处理的呢?

没遇到过这样的现象。你是不是在POWER_SAVING的情况下发送的呢?

开启了POWER_SAVING,但是只要一次一包包地发,是没问题的;

但连着发2包就有问题了,连着3,4,5包好像又没问题。追踪过dmaCfg这个结构体,需要发的数据包也都放到缓存里了

你试试,在第一次打印之前把电源强制为osal_pwrmgr_device( PWRMGR_ALWAYS_ON );看看是不是电源的这个原因。

另外,在初始化之后随便启动一个周期性事件,避免CPU进入到PM3模式。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top