在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TFT之AD畫線 --模擬示波器

            TFT之AD畫線 --模擬示波器

            作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
            //Author:"淚與汗的纏綿"

            //Data:2011-11月

            本文引用地址:http://www.biyoush.com/article/201611/321620.htm

            //功能:DA驅(qū)動程序,TFT函數(shù)的配置

            #include "yf_tft.h"
            u8 cnt;
            ADC_InitTypeDef ADC_InitStructure;
            voidADC_configuration(void);
            voidDAC_Configuration(void);
            int average_volt(void);
            void Delayms(u16 t);
            int main(void)
            {float AD_value;
            u16 DAC_data;int x,y;
            RCC_Configuration();
            ADC_configuration();
            DAC_Configuration();
            ili9320_Initializtion(); //端口引腳初始化
            ili9320_Delay(800000);
            ili9320_Clear(Blue);
            TFT_DrawLine(3,4,3,235,Black);
            TFT_DrawLine(4,4,4,235,Black);
            TFT_DrawLine(2,229,315,229,Black);
            TFT_DrawLine(2,230,315,230,Black);
            TFT_DrawLine(4,4,315,4,Red);
            Display_Grid(Black);
            LCD_showzifustr(100,100,"晶體管特性曲線",Black,Blue);
            while(1)
            {if(cnt>50)
            DAC_data=DAC_data+0x00f0;
            DAC_SetChannel2Data(DAC_Align_12b_L, DAC_data);//設(shè)置DAC通道1為12位且數(shù)據(jù)左對齊模式
            DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE);//使能DAC通道1的軟件觸發(fā)方式,轉(zhuǎn)換一次
            DAC_SetChannel1Data(DAC_Align_12b_L, DAC_data);//設(shè)置DAC通道1為12位且數(shù)據(jù)左對齊模式
            DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);//使能DAC通道1的軟件觸發(fā)方式,轉(zhuǎn)換一次
            AD_value=average_volt();
            AD_value=AD_value/4095.0*3.3;
            AD_value=AD_value*1000.0;
            Display_variate(60,16,AD_value);
            x++;
            y=229-AD_value*227/4096;
            if(x>320)
            {
            x=0;
            ili9320_Clear(Blue);
            Display_Grid(Black);
            TFT_DrawLine(3,4,3,235,Black);
            TFT_DrawLine(4,4,4,235,Black);
            TFT_DrawLine(2,229,315,229,Black);
            TFT_DrawLine(2,230,315,230,Black);
            TFT_DrawLine(4,4,315,4,Red);
            }
            ili9320_SetPoint(x,y,Red);
            Delayms(1);
            }
            }
            void RCC_Configuration(void)
            {

            SystemInit () ;//很重要?。。?!

            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);

            RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
            RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);
            }
            ////////////AD的配置函數(shù)/////////////////////////////
            voidADC_configuration()
            {
            ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
            ADC_InitStructure.ADC_ScanConvMode = ENABLE;
            ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
            ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
            ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
            ADC_InitStructure.ADC_NbrOfChannel=1;//指定用于轉(zhuǎn)換的通道數(shù)
            ADC_Init(ADC1, &ADC_InitStructure);

            ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);

            ADC_Cmd(ADC1, ENABLE);

            ADC_ResetCalibration(ADC1);

            while(ADC_GetResetCalibrationStatus(ADC1));//等待ADC的校準(zhǔn)寄存器被設(shè)置完畢

            ADC_StartCalibration(ADC1);

            while(ADC_GetCalibrationStatus(ADC1));

            ADC_SoftwareStartConvCmd(ADC1, ENABLE);
            }
            ////////////AD濾波函數(shù)/////////////////////////////
            int average_volt()
            {
            u16 sum=0,i,AD_value;
            for(i=0;i<10;i++)
            {
            AD_value=ADC_GetConversionValue(ADC1);
            sum=sum+AD_value;
            }
            return sum=sum/i;
            }
            void DAC_Configuration(void)
            {
            DAC_InitTypeDef DAC_InitStructure;

            DAC_InitStructure.DAC_Trigger=DAC_Trigger_Software;//DAC觸發(fā)方式為軟件控制
            DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None;
            //不從DAC端口產(chǎn)生波形
            DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bits8_0; //8位DA波形生成模式
            DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Enable;
            //使能DAC輸出緩沖器
            //用上面參數(shù)初始化DAC通道1
            DAC_Init(DAC_Channel_1, &DAC_InitStructure);
            DAC_Cmd(DAC_Channel_1, ENABLE);//使能DAC通道1
            DAC_Init(DAC_Channel_2, &DAC_InitStructure);//用上面參數(shù)初始化DAC通道1
            DAC_Cmd(DAC_Channel_2, ENABLE);//使能DAC通道1
            }
            void Delayms(u16 t)// Delay Time about 1 ms;
            {
            u16 i;
            cnt++;
            do
            {
            for (i=0; i<500; i++);
            }
            while(t--);
            }



            關(guān)鍵詞: TFTAD畫線模擬示波

            評論


            技術(shù)專區(qū)

            關(guān)閉