野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 265|回复: 2

火哥DMA_存储器访问的视频讲解

[复制链接]
发表于 2023-11-23 16:14:21 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"
#include "bsp_led.h"
#include "bsp_dma.h"

extern const uint32_t aSRC_Const_Buffer[BUFFER_SIZE];
extern uint32_t aDST_Buffer[BUFFER_SIZE];

#define SOFT_DELAY Delay(0x0FFFFF);

void Delay(__IO u32 nCount);

int main(void)
{
        /* 定义存放比较结果变量 */
  uint8_t TransferStatus;

        /* LED 端口初始化 */
        LED_GPIO_Config();

  /* 设置RGB彩色灯为紫色 */
  LED_PURPLE;  

  /* 简单延时函数 */
  Delay(0xFFFFFF);

  /* DMA传输配置 */
  MtM_DMA_Config();

  /* 等待DMA传输完成 */
  while(DMA_GetFlagStatus(MTM_DMA_FLAG_TC)==RESET);
       
        /* 比较源数据与传输后数据 */
  TransferStatus=Buffercmp(aSRC_Const_Buffer, aDST_Buffer, BUFFER_SIZE);
       
          /* 判断源数据与传输后数据比较结果*/
  if(TransferStatus==0)  
  {
    /* 源数据与传输后数据不相等时RGB彩色灯显示红色 */
    LED_RED;
  }
  else
  {
    /* 源数据与传输后数据相等时RGB彩色灯显示蓝色 */
    LED_BLUE;
  }
       
        //       
        while (1)
        {
       
        }

}
void Delay(__IO uint32_t nCount)         //简单的延时函数
{
        for(; nCount != 0; nCount--);
}
加了while(1)蓝灯才亮,不然一直亮红灯是为什么?

回复

使用道具 举报

发表于 2023-11-29 13:58:47 | 显示全部楼层
本身在最后加一个while1有防止程序跑飞不稳定的作用,可以debug看看运行状况
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-4 15:41:59 | 显示全部楼层
好的,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-28 08:54 , Processed in 0.120548 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表