OpenEdv-开源电子网

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

在内存管理中,利用DMA传输到内存,*p为什么是0?原子哥 赐教

[复制链接]

25

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-4-7
在线时间
33 小时
发表于 2016-4-26 16:27:18 | 显示全部楼层 |阅读模式
1金钱
        u16 *p;
        mem_init();                                //初始化内存池
        p=mymalloc(40960);//申请40K的内存
        MYDMA_Config(DMA1_Channel1,(u32)&ADC1->DR,(u32)p,1);//DMA1通道1,外设为ADC1,存储器为内存p,长40K.强制转换P为32位?????
        MYDMA_Enable(DMA1_Channel1);
        TIM3_Int_Init(4,7199);                //2KHz采样率,0.5ms采样一次,采样10s自动关闭中断,停止采样

       

        while(1)
        {
                a=KEY_Scan();
                if(a==2)                //10s后,若键值是2,从flash中读取,并发送这20K数据
                {       
                       
                        LCD_ShowNum(100,100,*p,4,16);
                       
                }

        }

在定时器中断中就是不断的调用Get_Adc(ADC_Channel_11);计满40K则关闭定时器,为什么在LCD_ShowNum(100,100,*p,4,16)这里始终是0??  请教大家。。。

最佳答案

查看完整内容[请看2#楼]

你adc得到的是十进制数值,不是ASCII码,所以,必定无法正常显示。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-26 16:27:19 | 显示全部楼层
你adc得到的是十进制数值,不是ASCII码,所以,必定无法正常显示。
回复

使用道具 举报

25

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-4-7
在线时间
33 小时
 楼主| 发表于 2016-4-26 16:52:50 | 显示全部楼层
请大家指导一下,问题出在哪里了。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 04:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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