OpenEdv-开源电子网

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

为什么示波器测不出stm32dac引脚输出的波形

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-7-7
在线时间
9 小时
发表于 2019-7-23 10:52:34 | 显示全部楼层 |阅读模式
1金钱
我的stm32f407 pa4  和adc 引脚上明明有dac的电压输出(这里我用adc也可以测出dac输出的电压也就是 引脚pa4和adc没有问题) 也就是我lcd上面也显示了dac的电压(这里我想弄出一个三角波所以dac显示的电压是从零到两点多然后从两点多到零 我确实使得dac输出是这个样子)但是出现了一个问题就是为什么用示波器却什么也测不出来啊现象就是一条直线和开机时没什么两样。
下面是main.c的代码
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "adc.h"
#include "dac.h"
#include "key.h"


//ALIENTEK ì½Ë÷ÕßSTM32F407¿a·¢°å êμÑé21
//DACêμÑé-¿aoˉêy°æ±¾
//¼¼êõÖ§3Ö£owww.openedv.com
//ìÔ±|μêÆì£ohttp://eboard.taobao.com  
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾  
//×÷ÕߣoÕyμãÔ-×ó @ALIENTEK


int main(void)
{
        u16 adcx;
        float temp;
        u8 t=0;         
        u16 dacval=0;
        u8 key;       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏè¼¶·Ö×é2
        delay_init(168);      //3õê¼»ˉÑóê±oˉêy
        uart_init(115200);                //3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
       
        LED_Init();                                        //3õê¼»ˉLED
        LCD_Init();                                        //LCD3õê¼»ˉ
        Adc_Init();                                 //adc3õê¼»ˉ
        KEY_Init();                                 //°′¼ü3õê¼»ˉ
        Dac1_Init();                                 //DACí¨μà13õê¼»ˉ       
        POINT_COLOR=RED;
        LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
        LCD_ShowString(30,70,200,16,16,"DAC TEST");       
        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(30,110,200,16,16,"2014/5/6");         
        LCD_ShowString(30,130,200,16,16,"WK_UP:+  KEY1:-");         
        POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«               
        LCD_ShowString(30,150,200,16,16,"DAC VAL:");             
        LCD_ShowString(30,170,200,16,16,"DAC VOL:0.000V");             
        LCD_ShowString(30,190,200,16,16,"ADC VOL:0.000V");
       
  DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//3õê¼ÖμÎa0       
        while(1)
        {
          while(dacval<3600)
          {     dacval+=50;
                    DAC_SetChannel1Data(DAC_Align_12b_R, dacval);//éè&#214;&#195;DAC&#214;μ
                          adcx=DAC_GetDataOutputValue(DAC_Channel_1);//&#182;áè&#161;&#199;°&#195;&#230;éè&#214;&#195;DACμ&#196;&#214;μ
                        LCD_ShowxNum(94,150,adcx,4,16,0);                //&#207;&#212;ê&#190;DAC&#188;&#196;′&#230;&#198;÷&#214;μ
                        temp=(float)adcx*(3.3/4096);                                 //μ&#195;μ&#189;DACμ&#231;&#209;1&#214;μ
                        adcx=temp;
                        LCD_ShowxNum(94,170,temp,1,16,0);                //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μ&#213;&#251;êy2&#191;·&#214;
                        temp-=adcx;
                        temp*=1000;
                        LCD_ShowxNum(110,170,temp,3,16,0X80);            //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μμ&#196;D&#161;êy2&#191;·&#214;
                        adcx=Get_Adc_Average(ADC_Channel_5,10);                //μ&#195;μ&#189;ADC×a&#187;&#187;&#214;μ          
                        temp=(float)adcx*(3.3/4096);                                //μ&#195;μ&#189;ADCμ&#231;&#209;1&#214;μ
                        adcx=temp;
                        LCD_ShowxNum(94,190,temp,1,16,0);               //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μ&#213;&#251;êy2&#191;·&#214;
                        temp-=adcx;
                        temp*=1000;
                        LCD_ShowxNum(110,190,temp,3,16,0X80);           //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μμ&#196;D&#161;êy2&#191;·&#214;
                        LED0=!LED0;          
                    delay_us(1);

         }
                  while(dacval>0)
            {     dacval-=50;
                          DAC_SetChannel1Data(DAC_Align_12b_R, dacval);//éè&#214;&#195;DAC&#214;μ
                            adcx=DAC_GetDataOutputValue(DAC_Channel_1);//&#182;áè&#161;&#199;°&#195;&#230;éè&#214;&#195;DACμ&#196;&#214;μ
                          LCD_ShowxNum(94,150,adcx,4,16,0);                //&#207;&#212;ê&#190;DAC&#188;&#196;′&#230;&#198;÷&#214;μ
                          temp=(float)adcx*(3.3/4096);                                 //μ&#195;μ&#189;DACμ&#231;&#209;1&#214;μ
                          adcx=temp;
                          LCD_ShowxNum(94,170,temp,1,16,0);                //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μ&#213;&#251;êy2&#191;·&#214;
                          temp-=adcx;
                          temp*=1000;
                          LCD_ShowxNum(110,170,temp,3,16,0X80);            //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μμ&#196;D&#161;êy2&#191;·&#214;
                          adcx=Get_Adc_Average(ADC_Channel_5,10);                //μ&#195;μ&#189;ADC×a&#187;&#187;&#214;μ          
                          temp=(float)adcx*(3.3/4096);                                //μ&#195;μ&#189;ADCμ&#231;&#209;1&#214;μ
                          adcx=temp;
                          LCD_ShowxNum(94,190,temp,1,16,0);               //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μ&#213;&#251;êy2&#191;·&#214;
                          temp-=adcx;
                          temp*=1000;
                          LCD_ShowxNum(110,190,temp,3,16,0X80);           //&#207;&#212;ê&#190;μ&#231;&#209;1&#214;μμ&#196;D&#161;êy2&#191;·&#214;
                          LED0=!LED0;          
                      delay_us(1);       
           }
}



}




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

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2019-9-9
在线时间
0 小时
发表于 2019-9-10 08:48:18 | 显示全部楼层
我也遇到了相同的问题,我在F7上用正点原子的F7的例程能测到对应的波形,在我自己的F1上就跑不起来,很奇怪
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
0
金钱
0
注册时间
2019-9-12
在线时间
0 小时
发表于 2019-9-12 10:02:33 | 显示全部楼层
你这个注释全是乱码
回复

使用道具 举报

8

主题

185

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-7-15
在线时间
47 小时
发表于 2019-9-12 11:41:49 | 显示全部楼层
示波器测不出波形,只能说输出有问题,要细查代码。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 10:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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