OpenEdv-开源电子网

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

[F1开发板通用] 分享:DAC的PA4通道一改为PA5通道二

[复制链接]

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-12-10 12:39:13 | 显示全部楼层 |阅读模式
本帖最后由 1208 于 2019-3-7 18:20 编辑

1)要将dac里面的PA4对应的引脚要改PA5
2)dac里面和主函数通道一对应改为通道二
如:adcx=DAC_GetDataOutputValue(DAC_Channel_2);//读取前面设置DAC的值
3)主函数里面PA1通道不用改变
adcx=Get_Adc_Average(ADC_Channel_1,10);        //得到ADC转换值
4)因为是PA4改成PA5
所以PA5要用杜邦线连接ADC(PA1),而不能像跳线帽一样连接ADC和DAC
[mw_shl_code=applescript,true]         DAC_SetChannel2Data(DAC_Align_12b_R, 0);//初始值为0                         
        while(1)
        {
                t++;
                key=KEY_Scan(0);                          
                if(key==WKUP_PRES)
                {                 
                        if(dacval<4000)dacval+=200;
                        DAC_SetChannel2Data(DAC_Align_12b_R, dacval);//设置DAC值       
                }else if(key==KEY1_PRES)       
                {
                        if(dacval>200)dacval-=200;
                        else dacval=0;
                  DAC_SetChannel2Data(DAC_Align_12b_R, dacval);//设置DAC值
//                        DAC_SetChannel2Data(DAC_Align_8b_R, 0);//设置DAC值
//                        DAC_SetChannel2Data(DAC_Align_12b_R, dacval);//设置DAC值
                }         
         if(t==10||key==KEY2_PRES||key==WKUP_PRES) //WKUP/KEY1按下了,或者定时时间到了
                {          
                        adcx=DAC_GetDataOutputValue(DAC_Channel_2);//读取前面设置DAC的值
                        LCD_ShowxNum(124,150,adcx,4,16,0);             //显示DAC寄存器值
                        temp=(float)adcx*(3.3/4096);                        //得到DAC电压值
                        adcx=temp;
                        LCD_ShowxNum(124,170,temp,1,16,0);             //显示电压值整数部分
                        temp-=adcx;
                        temp*=1000;
                        LCD_ShowxNum(140,170,temp,3,16,0X80);         //显示电压值的小数部分
                       
                        adcx=Get_Adc_Average(ADC_Channel_1,10);                //得到ADC转换值(重点不能改)          
                        temp=(float)adcx*(3.3/4096);                        //得到ADC电压值
                        adcx=temp;
                        LCD_ShowxNum(124,190,temp,1,16,0);             //显示电压值整数部分
                        temp-=adcx;
                        temp*=1000;
                        LCD_ShowxNum(140,190,temp,3,16,0X80);         //显示电压值的小数部分
                        LED0=!LED0;          
                        t=0;
                }
                delay_ms(10);       

        }
}[/mw_shl_code]


战舰 DAC实验PA5通道.zip

4.84 MB, 下载次数: 67

MINISTM32 实验17 DAC-PA5.zip

3.8 MB, 下载次数: 33

业精于勤荒于嬉;行成于思毁于随!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2018-12-10 16:06:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-12-10 16:13:17 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
 楼主| 发表于 2018-12-10 16:18:40 | 显示全部楼层

哪里不行
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2018-12-10 16:52:59 | 显示全部楼层

改了哪里,和我之前一样0.695吗
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
 楼主| 发表于 2018-12-10 17:15:26 | 显示全部楼层
手术室 发表于 2018-12-10 16:52
改了哪里,和我之前一样0.695吗

我战舰显示是0.644
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2018-12-11 08:58:08 | 显示全部楼层
1208 发表于 2018-12-10 17:15
我战舰显示是0.644

对啊,ADC1的时候是0V啊。这是为什么
回复 支持 反对

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2018-12-11 08:58:38 | 显示全部楼层
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
 楼主| 发表于 2018-12-11 09:38:47 | 显示全部楼层
手术室 发表于 2018-12-11 08:58
对啊,ADC1的时候是0V啊。这是为什么

拍照看下
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2018-12-11 09:44:53 | 显示全部楼层
阿里旺旺图片20181211094300.jpg
万用表实测DAC输出为0.69,但是输出显示0V,adc示数没问题
回复 支持 反对

使用道具 举报

5

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2018-12-4
在线时间
38 小时
发表于 2018-12-11 09:46:19 | 显示全部楼层

http://www.openedv.com/forum.php ... &highlight=DAC2这个帖子说了一半,你看看明白吗。为什么是硬件问题,到底是哪问题
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
 楼主| 发表于 2018-12-11 10:08:31 | 显示全部楼层
手术室 发表于 2018-12-11 09:44
万用表实测DAC输出为0.69,但是输出显示0V,adc示数没问题

估计是芯片的问题,返修吧
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-5-23
在线时间
16 小时
发表于 2020-3-13 17:55:18 来自手机 | 显示全部楼层
应该是输出能力不够,把输出缓存使能,就会准确点,但是不能清零输出电压
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-5-23
在线时间
16 小时
发表于 2020-3-13 18:07:42 来自手机 | 显示全部楼层
应该是管脚复用导致的,估计是SD卡导致的吧
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 22:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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