普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2854|回复: 1

f103开发板试验28LCD_PWM_DAC例子PB6输出的是PWM波,还是滤波后的连续信号?谢谢

[复制链接]

1

主题

1

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2019-5-6 14:45:44 | 显示全部楼层 |阅读模式
/*******************************************************************************
*                 
*                                普中科技
--------------------------------------------------------------------------------
* 实 验 名         : LCD-PWM-DAC实验
* 实验说明       : 通过将程序下载进去后点击复位,利用端口PB6内的TIM4产生一个PWM信号,
                    将此信号接入到管脚PB0上,进行AD转换,彩屏上面显示TIM4输出的PWM值
                    和PB0端口AD检测的电压,LED指示灯闪烁效果,
                    按下复位开关重新运行,其他子函数注释
                    可以参考之前的函数注释
* 连接方式       :     将一根导线将PB6和PB0接在一起即可看到AD的电压变化。
* 注    意         :     所用函数在头文件.c文件内
*******************************************************************************/

使用一根导线将管脚PB6和PB0连接即可看到AD电压值变化。



#include "public.h"
#include "pwm_dac.h"
#include "systick.h"
#include "gui.h"
#include "led.h"
#include "adc.h"
#include "printf.h"


/****************************************************************************
* Function Name  : main
* Description    : Main program.
* Input          : None
* Output         : None
* Return         : None
****************************************************************************/
int main()              
{   
    u16 value,value1,value2;
    float ad;
    u8 i=0,j,dat[7],dat1[7];
    pwm_dac_init();
    adc_init();      
    TFT_Init();     //TFT²ÊÆÁ³õʼ»¯
    LED_Init();      //¶Ë¿Ú³õʼ»¯
    printf_init();    //printf³õʼ»¯
    TFT_ClearScreen(BLACK);       //ÇåÆÁ
    GUI_Show12ASCII(10,10,"This is a PWM-DAC Check!",YELLOW,BLACK);
    GUI_Show12ASCII(10,27,"Connect the PB6 PB0!",YELLOW,BLACK);
    GUI_Show12ASCII(10,100,"The DA Value is:",YELLOW,BLACK);
    GUI_Show12ASCII(10,117,"The AD Volage is:",YELLOW,RED);
    while(1)
    {
        value=0;
        for(i=0;i<=10;i++)
        {
            value=25*i;
            TIM_SetCompare1(TIM4, value);//&#201;è&#214;&#195;TIMx&#178;&#182;&#187;&#241;±&#200;&#189;&#207;1&#188;&#196;&#180;&#230;&#198;÷&#214;&#181;
            delay_ms(1);
            value1=TIM_GetCapture1(TIM4);

            dat[0]=value1/100+0x30;
            dat[1]=value1%100/10+0x30;
            dat[2]=value1%100%10+0x30;
            dat[3]='\0';
            ADC_SoftwareStartConvCmd(ADC1, ENABLE);    //&#202;&#185;&#196;&#220;&#187;ò&#213;&#223;&#202;§&#196;&#220;&#214;&#184;&#182;¨&#181;&#196;ADC&#181;&#196;&#200;í&#188;&#254;×&#170;&#187;&#187;&#198;&#244;&#182;&#175;&#185;&#166;&#196;&#220;
            while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//×&#170;&#187;&#187;&#189;á&#202;&#248;±ê&#214;&#190;&#206;&#187;
            value2=ADC_GetConversionValue(ADC1);
            ad=value2*3.3/4096;
            value2=ad*100;
            dat1[0]=value2/100+0x30;
            dat1[1]='.';
            dat1[2]=value2%100/10+0x30;
            dat1[3]=value2%100%10+0x30;
            dat1[4]='V';
            dat1[5]='\0';
            GUI_Show12ASCII(160,100,dat,YELLOW,BLACK);
            GUI_Show12ASCII(160,117,dat1,YELLOW,BLACK);
            delay_ms(500);

            if(j>1)
            {
                j=0;
                GPIO_SetBits(GPIOC,GPIO_Pin_0);
            }
            else
            {
                j++;
                GPIO_ResetBits(GPIOC,GPIO_Pin_0);
            }
        }                                
    }            
}





回复

使用道具 举报

4

主题

156

帖子

516

积分

高级会员

Rank: 4

积分
516
发表于 2019-5-7 08:56:58 | 显示全部楼层
应该是pwm波
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-29 12:00 , Processed in 0.111084 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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