OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1493|回复: 2

DMA实验 没有0-100%的动态变化 为什么?

[复制链接]

20

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2018-1-23
在线时间
40 小时
发表于 2018-6-14 22:15:42 | 显示全部楼层 |阅读模式
DMA实验 没有0-100%的动态变化  为什么?
我只是把原子哥的代码去掉了按键和小灯,其他的基本上一样的
这个是什么原因呢,在转换那插入500ms的延时也只有0和100两个状态,而且还是很快,求大神指点

#include "stm32f10x.h”
#include "lcd.h"
#include "delay.h"
#include "usart.h"
#include "dma.h"

#define SEND_BUF_SIZE 8200        //·¢Ëíêy¾Y3¤¶è,×îoÃμèóúsizeof(TEXT_TO_SEND)+2μÄÕûêy±¶.
u8 SendBuff[SEND_BUF_SIZE];        //·¢Ëíêy¾Y»o3åÇø
const u8 TEXT_TO_SEND[]={"ALIENTEK Elite STM32F1 DMA ′®¿úêμÑé"};


int main()
{
        u16 i;
        u8 t=0;
        u8 j,mask=0;
        float pro=0;//½ø¶è
       
        delay_init();                                                                                //LCD±ØDëÏè3õê¼»ˉÑóê±oˉêy è»oó′®¿ú ÔùLCD  init
        uart_init(115200);
        LCD_Init();

       
        POINT_COLOR=RED;
        LCD_ShowString(40,50,200,24,24,"David creating!");
       
        MYDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)SendBuff,SEND_BUF_SIZE);                //3õê¼»ˉDMAí¨μ࣬½«USart1μØÖ·×÷Îaíaéè»ùμØÖ·£¬Äú»ùμØÖ·£¬o«»o′æ′óD¡
       
        j=sizeof(TEXT_TO_SEND);          
        for(i=0;i<SEND_BUF_SIZE;i++)//ì&#238;3&#228;êy&#190;Yμ&#189;SendBuff
    {
                if(t>=j)//&#188;óè&#235;&#187;&#187;DD·&#251;
                {
                        if(mask)
                        {
                                SendBuff[i]=0x0a;
                                t=0;
                        }else
                        {
                                SendBuff[i]=0x0d;
                                mask++;
                        }       
                }else//&#184;′&#214;&#198;TEXT_TO_SENDó&#239;&#190;&#228;
                {
                        mask=0;
                        SendBuff[i]=TEXT_TO_SEND[t];
                        t++;
                }              
    }                 
        POINT_COLOR=BLUE;//éè&#214;&#195;×&#214;ì&#229;&#206;aà&#182;é&#171;          
        i =0;
        while(1)
        {
                LCD_ShowString(30,150,200,16,16,"Start Transimit....");
                LCD_ShowString(30,170,200,16,16,"   %");//&#207;&#212;ê&#190;°ù·&#214;o&#197;
                printf("\r\nDMA DATA:\r\n");             
               
                USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE);                        // USart1DMA·¢&#203;í&#191;a&#198;&#244;
                MYDMA_Enable(DMA1_Channel4);
                while(1)
                {
                        if(DMA_GetFlagStatus(DMA1_FLAG_TC4)!=RESET)                                //&#187;&#241;è&#161;í¨μà4±ê&#214;&#190;&#206;&#187;£&#172;&#197;D&#182;&#207;ê&#199;·&#241;′&#171;ê&#228;íê3é
                        {
                                DMA_ClearFlag(DMA1_FLAG_TC4);
                                break;
                        }
                        pro = DMA_GetCurrDataCounter(DMA1_Channel4);   //&#187;&#241;è&#161;ê£óàêy&#190;Yá&#191;
                        pro = 1-pro/SEND_BUF_SIZE;
                        pro*=100;                                                                                                                                 //×a&#187;&#187;°ù·&#214;±è
                        LCD_ShowNum(30,170,pro,3,16);       
                       
                }
                //        LCD_ShowNum(30,170,100,3,16);//&#207;&#212;ê&#190;100%          
        //        LCD_ShowString(30,150,200,16,16,"Transimit Finished!")
        }
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2014-10-21
在线时间
31 小时
发表于 2018-6-14 23:24:15 来自手机 | 显示全部楼层

回帖奖励 +5 金钱

顶顶,记得原先的例程是按下按键触发发送的吧,按键去掉的话,那就一使能马上发送了,至于没有慢慢发送,应该是逻辑哪里有问题,单步运行看看
回复 支持 反对

使用道具 举报

20

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2018-1-23
在线时间
40 小时
 楼主| 发表于 2018-6-15 07:58:48 | 显示全部楼层
你干嘛 发表于 2018-6-14 23:24
顶顶,记得原先的例程是按下按键触发发送的吧,按键去掉的话,那就一使能马上发送了,至于没有慢慢发送,应 ...

之前是改过一些东西,调试出问题之后基本上直接把原子哥的代码粘过来了,但是没有出现动态过程
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 17:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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