打印
[STM32H7]

H7B0串口1DMA方式求助???DMA中断收不到数据??????

[复制链接]
316|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1021256354|  楼主 | 2023-3-10 14:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

H7B0串口1DMA方式求助???DMA中断收不到数据??????



        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddress      = 0x24000000;
        MPU_InitStruct.Size             = MPU_REGION_SIZE_512KB;
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
//        MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE;
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE;
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
        MPU_InitStruct.Number           = MPU_REGION_NUMBER0;
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
        MPU_InitStruct.SubRegionDisable = 0x00;
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;
      



  /* Enable I-Cache */
  SCB_EnableICache();
  /* Enable D-Cache */
  SCB_EnableDCache();



ALIGN_32BYTES(__attribute__((section (".RAM_D2"))) uint8_t USART1_RX_BUF[USART1_DMA_RX_BUFFER_MAXIMUM]) = "ARM";


使用特权

评论回复
沙发
香水城| | 2023-3-10 15:01 | 只看该作者
你现在是uart接收数据到DR寄存器,然后DMA提取后放到内存,从你的信息来看是放在D2域的RAM吧。 这个过程跟cache关系不大。

一个个来,先保证UART正常接收了, 这边OK了再来检查DMA的配置。

使用特权

评论回复
板凳
Prry| | 2023-3-10 23:34 | 只看该作者
参考LL库实现,DMA内存地址要指定内存区域:
https://blog.csdn.net/qq_20553613/article/details/125108990?spm=1001.2014.3001.5501

使用特权

评论回复
地板
1021256354|  楼主 | 2023-3-17 17:34 | 只看该作者
香水城 发表于 2023-3-10 15:01
你现在是uart接收数据到DR寄存器,然后DMA提取后放到内存,从你的信息来看是放在D2域的RAM吧。 这个过程跟c ...

谢谢,已经解决了,DMA和Cache配置不对,

使用特权

评论回复
5
1021256354|  楼主 | 2023-3-17 17:35 | 只看该作者
Prry 发表于 2023-3-10 23:34
参考LL库实现,DMA内存地址要指定内存区域:
https://blog.csdn.net/qq_20553613/article/details/12510899 ...

谢谢

使用特权

评论回复
6
tian111| | 2023-3-29 21:17 | 只看该作者
这个过程跟cache关系不大。

使用特权

评论回复
7
zhuhuis| | 2023-3-29 21:20 | 只看该作者
检查DMA的配置

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:多读书 多看报 少吃零食 多睡觉

147

主题

640

帖子

3

粉丝