你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H7432 串口采用DMA方式接收不定长数据重复问题

[复制链接]
tiantang698 提问时间:2019-2-28 11:40 /
大家好:
        现在我调试dma串口时,接收的数据是重复的,发不同数据会有重复在里面,是u不是要清除buffer,百度各种方法无法实现。
void u_uart_dma_receive_idle(UART_HandleTypeDef *huart, uint8_t index)
{
        if((__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) != RESET))
        {
                __HAL_UART_CLEAR_IDLEFLAG(huart);
                UartRawPack[index-1]->len = UART_MAX_LEN - ((DMA_Stream_TypeDef*)huart->hdmarx->Instance)->NDTR;
                //Send Data to queue here.
                if(UartRawPack[index-1]->len > 0){
                        u_uart_dma_RxCpltCallback(huart, UartRawPack[index-1]);
                }
                HAL_UART_DMAStop(huart);
                //HAL_UART_Transmit_DMA(huart, UartRawPack[index-1]->Data, UartRawPack[index-1]->len);
                HAL_UART_Receive_DMA(huart, UartRawPack[index-1]->Data, UART_MAX_LEN);
        }
}

<
收藏 评论6 发布时间:2019-2-28 11:40

举报

6个回答
tiantang698 回答时间:2019-2-28 11:45:25
tiantang698 回答时间:2019-2-28 11:45:45
没人么?
tiantang698 回答时间:2019-2-28 11:47:07
大神在哪?
tiantang698 回答时间:2019-2-28 11:52:51
现象如图
微信图片_20190228115031.png
微信图片_20190228115031.png
斯文人 回答时间:2019-2-28 17:15:57
发的数为啥和接收的不一样
tiantang698 回答时间:2019-2-28 19:20:52
搞定了,是打开了cache,开dma要配置mpu。
/* Configure the MPU attributes as Device not cacheable
     for UART DMA descriptors */
  MPU_InitStruct.Enable = MPU_REGION_ENABLE;
  MPU_InitStruct.BaseAddress = 0x38000000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_64KB;
  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
  MPU_InitStruct.Number = MPU_REGION_NUMBER3;
  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
  MPU_InitStruct.SubRegionDisable = 0x00;
  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

  HAL_MPU_ConfigRegion(&MPU_InitStruct);

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2 自力更生

查看全部评分

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版