OpenEdv-开源电子网

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

关于STM32F103RCT6 Mini板DAC的求助

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-9-13
在线时间
4 小时
发表于 2017-9-13 09:34:11 | 显示全部楼层 |阅读模式
1金钱
我正试着做DAC程序。用ST-LINK下载以下程序后,Mini板的PA4口用万用表测不到有电压输出。
                GPIO_InitTypeDef GPIO_InitStruct;       
                DAC_InitTypeDef DAC_InitStruct;

                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,ENABLE);
                RCC_APB1PeriphResetCmd(RCC_APB1Periph_DAC,ENABLE);

                GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;
                GPIO_InitStruct.GPIO_Pin=GPIO_Pin_4;
                GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;       
                GPIO_Init(GPIOA,&GPIO_InitStruct);
                GPIO_SetBits(GPIOA,GPIO_Pin_4);

                DAC_InitStruct.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;
                DAC_InitStruct.DAC_OutputBuffer=DAC_OutputBuffer_Disable;
                DAC_InitStruct.DAC_Trigger=DAC_Trigger_None;
                DAC_InitStruct.DAC_WaveGeneration=DAC_WaveGeneration_None;
                DAC_Init(DAC_Channel_1,&DAC_InitStruct);

                DAC_Cmd(DAC_Channel_1, ENABLE);

                DAC_SetChannel1Data(DAC_Align_12b_R,4096);       


后来我试着把“ALIENTEK MINISTM32 实验17 DAC实验”的程序写进去。由于手头没有显示屏,所以只能直接测量PA4口,但同样测不到电压。

供电采用的是USB-232接口的供电。

请问各位大神。我这个是什么原因造成的呢?

最佳答案

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

http://openedv.com/forum.php?mod=viewthread&tid=109261&highlight=DAC 神奇的把这个例程里的程序复制过来就可以了。实在没看明白是哪里不一样。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-9-13
在线时间
4 小时
 楼主| 发表于 2017-9-13 09:34:12 | 显示全部楼层
http://openedv.com/forum.php?mod ... 1&highlight=DAC
神奇的把这个例程里的程序复制过来就可以了。实在没看明白是哪里不一样。
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5140
金钱
5140
注册时间
2014-8-26
在线时间
1317 小时
发表于 2017-9-13 10:23:40 | 显示全部楼层
下载例程测试下,还是没有输出,可能是PA4这个IO出问题了,旺旺联系售后
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-9-13
在线时间
4 小时
 楼主| 发表于 2017-9-13 10:28:22 | 显示全部楼层
login_FAE 发表于 2017-9-13 10:23
下载例程测试下,还是没有输出,可能是PA4这个IO出问题了,旺旺联系售后

我下载过标准例程“ALIENTEK MINISTM32 实验17 DAC实验”PA4也没有输出。但是我把标准例程“ALIENTEK MINISTM32 实验1跑马灯-库函数操作”里LED0(PA8)改成PA4后。可以测量到PA4口电压的0与3.3的变化。
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-9-13
在线时间
4 小时
 楼主| 发表于 2017-9-13 11:40:41 | 显示全部楼层
http://openedv.com/forum.php?mod ... 1&highlight=DAC
这个例程就可以。。没看出来哪里不一样啊。
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5140
金钱
5140
注册时间
2014-8-26
在线时间
1317 小时
发表于 2017-9-13 12:40:49 | 显示全部楼层
路人丶甲 发表于 2017-9-13 11:40
http://openedv.com/forum.php?mod=viewthread&tid=109261&highlight=DAC
这个例程就可以。。没看出来哪里 ...

例程是按键设置dac值的  正常是会有输出的
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-9-13
在线时间
4 小时
 楼主| 发表于 2017-9-13 15:10:30 | 显示全部楼层
login_FAE 发表于 2017-9-13 12:40
例程是按键设置dac值的  正常是会有输出的

你看错了吧。链接里的那个例程是没有使用按键的。
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5140
金钱
5140
注册时间
2014-8-26
在线时间
1317 小时
发表于 2017-9-13 15:27:36 | 显示全部楼层
路人丶甲 发表于 2017-9-13 15:10
你看错了吧。链接里的那个例程是没有使用按键的。

看图

1

1
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-9-13
在线时间
4 小时
 楼主| 发表于 2017-9-13 16:21:24 | 显示全部楼层

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"         
#include "adc.h"
#include "stm32f10x_dac.h"

/************************************************
ALIENTEK Õ½½¢STM32F103¿a·¢°åêμÑé17
ADC êμÑé
¼¼êõÖ§3Ö£owww.openedv.com
ìÔ±|μêÆì£ohttp://eboard.taobao.com
1Ø×¢Î¢DÅ1«Öúƽì¨Î¢DÅoÅ£o"ÕyμãÔ-×ó"£¬Ãa·Ñ»ñè¡STM32×êáÏ¡£
1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾  
×÷ÕߣoÕyμãÔ-×ó @ALIENTEK
************************************************/


extern u16 Get_Temperature(void);

void DAC_OUT_165(void)
{
    DAC_InitTypeDef DAC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE );          //ê1ÄüPA1ê±Öó
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC , ENABLE );          //ê1ÄüDAC1í¨μàê±Öó  
     
    //PA4 ×÷ÎaÄ£Äaí¨μàêäèëòy½Å                        
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;                //Ä£Äaêäèëòy½Å
    GPIO_Init(GPIOA, &GPIO_InitStructure);       
     
    DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Disable;
    DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=0;
    DAC_InitStructure.DAC_Trigger=0;
    DAC_InitStructure.DAC_WaveGeneration=0;
    DAC_Init(DAC_Channel_1,&DAC_InitStructure);
     
        DAC_Cmd(DAC_Channel_1,ENABLE);
    DAC_SetChannel1Data(DAC_Align_12b_R,2047);
}


int main(void)
{         
    u16 adcx;
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÖD¶ÏóÅÏè¼¶·Ö×éÎa×é2£o2λÇàÕ¼óÅÏè¼¶£¬2λÏìó|óÅÏè¼¶
        uart_init(115200);                 //′®¿ú3õê¼»ˉÎa115200
        LED_Init();                             //LED¶Ë¿ú3õê¼»ˉ
        LCD_Init();                                
        Adc_Init();                                  //ADC3õê¼»ˉ

        POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
        LCD_ShowString(60,50,200,16,16,"WarShip STM32");       
        LCD_ShowString(60,70,200,16,16,"ADC TEST");       
        LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(60,110,200,16,16,"2015/1/14");       
        //ÏÔê¾ìáê¾DÅÏ¢
        POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«
        LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:");             
        LCD_ShowString(60,150,200,16,16,"ADC_CH0_VOL:0.000V");               
    DAC_OUT_165();
        while(1)
        {
                adcx=Get_Adc_Average(0,10);
    printf("adcx:%d\r\n",adcx);
        
                LCD_ShowxNum(156,130,adcx,4,16,0);//ÏÔê¾ADCμÄÖμ  
                LED0=!LED0;
                delay_ms(1000);       
        }
}



你自己看这个程序里面那句话有写按键。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-11-10
在线时间
1 小时
发表于 2019-11-12 21:32:54 | 显示全部楼层
本人新手,用一个小时发现问题了,原因是JTAG调试线插在PA15引脚上拉低电位(key1),导致KEY_Scan函数一直循环,无法返回其他按键值,拔掉JTAG用DAC例程运行正常
回复

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-11-7
在线时间
15 小时
发表于 2020-2-6 18:41:20 | 显示全部楼层
ydjmin 发表于 2019-11-12 21:32
本人新手,用一个小时发现问题了,原因是JTAG调试线插在PA15引脚上拉低电位(key1),导致KEY_Scan函数一直 ...

厉害啊 兄弟  还真是这样 佩服你
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 08:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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