亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wavemaker.c

?? STM32手持式示波器源代碼
?? C
字號:
/****************************************************************************
* Copyright (C), 2010, www.armfly.com
*
* 【本例程在安富萊STM32F103ZE-EK開發板上調試通過             】
* 【QQ: 1295744630, 旺旺:armfly, Email: armfly@qq.com       】
*
* 文件名: WaveMaker.c
* 內容簡述: 波形發生器
*
* 文件歷史:
* 版本號  日期       作者    說明
* v0.1    2010-02-15 armfly  創建該文件
*
*/

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include <stdio.h>
#include "systick.h"
#include "WaveMaker.h"

/*
	安富萊STM32F103ZE-EK 口線分配:

	波形由PA4輸出, PA4 用作 DAC_OUT1, DAC的參考電壓 = 3.3V
*/

/*  正弦波數據,12bit,1個周期128個點*/
const uint16_t g_SineWave128[] = {
	2047 ,
	2147 ,
	2248 ,
	2347 ,
	2446 ,
	2544 ,
	2641 ,
	2737 ,
	2830 ,
	2922 ,
	3012 ,
	3099 ,
	3184 ,
	3266 ,
	3346 ,
	3422 ,
	3494 ,
	3564 ,
	3629 ,
	3691 ,
	3749 ,
	3803 ,
	3852 ,
	3897 ,
	3938 ,
	3974 ,
	4006 ,
	4033 ,
	4055 ,
	4072 ,
	4084 ,
	4092 ,
	4094 ,
	4092 ,
	4084 ,
	4072 ,
	4055 ,
	4033 ,
	4006 ,
	3974 ,
	3938 ,
	3897 ,
	3852 ,
	3803 ,
	3749 ,
	3691 ,
	3629 ,
	3564 ,
	3494 ,
	3422 ,
	3346 ,
	3266 ,
	3184 ,
	3099 ,
	3012 ,
	2922 ,
	2830 ,
	2737 ,
	2641 ,
	2544 ,
	2446 ,
	2347 ,
	2248 ,
	2147 ,
	2047 ,
	1947 ,
	1846 ,
	1747 ,
	1648 ,
	1550 ,
	1453 ,
	1357 ,
	1264 ,
	1172 ,
	1082 ,
	995  ,
	910  ,
	828  ,
	748  ,
	672  ,
	600  ,
	530  ,
	465  ,
	403  ,
	345  ,
	291  ,
	242  ,
	197  ,
	156  ,
	120  ,
	88   ,
	61   ,
	39   ,
	22   ,
	10   ,
	2    ,
	0    ,
	2    ,
	10   ,
	22   ,
	39   ,
	61   ,
	88   ,
	120  ,
	156  ,
	197  ,
	242  ,
	291  ,
	345  ,
	403  ,
	465  ,
	530  ,
	600  ,
	672  ,
	748  ,
	828  ,
	910  ,
	995  ,
	1082 ,
	1172 ,
	1264 ,
	1357 ,
	1453 ,
	1550 ,
	1648 ,
	1747 ,
	1846 ,
	1947
};

/* 正弦波 */
const uint16_t g_SineWave32[32] = {
                      2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056,
                      3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909,
                      599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647};

/* 方波 */
const uint16_t g_SineWave32_FangBo[32] = {
                      0, 0, 0, 0, 0, 0, 0, 0,  
					  0, 0, 0, 0, 0, 0, 0, 0, 
                      4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
					  4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095
};

uint16_t g_Wave[128];

/*******************************************************************************
*	函數名: InitWaveMaker
*	輸  入:	無
*	輸  出:	無
*	功能說明:初始化波形發生器。
*			配置PA4 為DAC_OUT1, 啟用DMA2
*/
void InitWaveMaker(void)
{
  	{
		uint32_t i;

		for (i = 0; i < 32; i++)
		{
			/* 調整正弦波幅度 */
			g_Wave[i] = g_SineWave32[i] * 0.606;
		}

	}
	
  	/* 配置時鐘 */
  	{
		RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);
		
	  	/* GPIOA Periph clock enable */
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

		/* DAC Periph clock enable */
		RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
		
		/* TIM6 Periph clock enable */
		//RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
		RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
	}

	/* 第1步,配置GPIO.  */
	{
		GPIO_InitTypeDef GPIO_InitStructure;

	//	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

		/* 配置PA4為DAC_OUT1 */
		GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
		GPIO_Init(GPIOA, &GPIO_InitStructure);
	}

	/* TIM6 Configuration */
	#if 1 /* 用TIM6, IAR下不產生波形 */
	{
	//	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);

		TIM_PrescalerConfig(TIM6, 0, TIM_PSCReloadMode_Update);

		/* 決定DAC輸出的采樣頻率
		  x = 72000000 / 頻率
		*/
		//TIM_SetAutoreload(TIM6, 562);	   /* 562 輸出1KHz的正弦波 */
		//TIM_SetAutoreload(TIM6, 22);	   /* 22 輸出100KHz的正弦波 */
		TIM_SetAutoreload(TIM6, 220);	   /* 22 輸出10KHz的正弦波 */


		/* TIM6 TRGO selection */
		TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update);
	}
	#else
	{
		TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;
	  
		/* TIM2 Configuration */
		/* Time base configuration */
		TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); 
		TIM_TimeBaseStructure.TIM_Period = 0x19;          
		TIM_TimeBaseStructure.TIM_Prescaler = 0x0;       
		TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;    
		TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
		TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
		
		/* TIM2 TRGO selection */
		TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);	  
	}
	#endif

	/* DAC channel1 Configuration */
	{
		DAC_InitTypeDef DAC_InitStructure;

//		RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

		DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;
		//DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;
		DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
		DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
		DAC_Init(DAC_Channel_1, &DAC_InitStructure);
	}

	{
		uint32_t i;

		for (i = 0; i < 32; i++)
		{
			/* 調整正弦波幅度 */
			g_Wave[i] = g_SineWave32[i] * 0.606;
		}

	}
	
	/* DMA2 channel3 configuration */
	{
		DMA_InitTypeDef DMA_InitStructure;

//		RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);

		DMA_DeInit(DMA2_Channel3);
		DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12R1_Address;
		DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&g_Wave;
		DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
		DMA_InitStructure.DMA_BufferSize = 32;
		DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
		DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
		DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
		DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
		DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
		DMA_InitStructure.DMA_Priority = DMA_Priority_High;
		DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
		DMA_Init(DMA2_Channel3, &DMA_InitStructure);

		/* Enable DMA2 Channel3 */
		DMA_Cmd(DMA2_Channel3, ENABLE);
	}

	/* Enable DAC Channel1: Once the DAC channel1 is enabled, PA.04 is
	 automatically connected to the DAC converter. */
	DAC_Cmd(DAC_Channel_1, ENABLE);

	/* Enable DMA for DAC Channel1 */
	DAC_DMACmd(DAC_Channel_1, ENABLE);

	/* TIM6 enable counter */
	TIM_Cmd(TIM6, ENABLE);
	//TIM_Cmd(TIM2, ENABLE);

}

void SetupWaveType(uint8_t _type)
{
	/*
		計算波形幅度。
		DAC寄存器最大值 4096 對應3.3V

		我們期望獲得2V的幅度,系數 = 0.606
		4096 * 0.606 = 2482
	*/
	TIM_Cmd(TIM6, DISABLE);
	switch (_type)
	{
		case WT_SIN:	/* 正弦波 */
			{
				uint32_t i;

				for (i = 0; i < 128; i++)
				{
					/* 調整正弦波幅度 */
					g_Wave[i] = g_SineWave32[i] * 0.606;
				}

			}
			break;

		case WT_RECT:	/* 方波 */
			{
				uint32_t i;

				for (i = 0; i < 64; i++)
				{
					g_Wave[i] = 0;
				}

				for (i = 0; i < 64; i++)
				{
					g_Wave[i] = 2482;
				}
			}
			break;
	}


    TIM_Cmd(TIM6, ENABLE);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人区卡一卡二卡三乱码免费卡| 国产精品中文欧美| 韩国精品在线观看| 91丨九色丨尤物| 欧美一区二区三区精品| 日韩美女视频19| 国产一区二区三区蝌蚪| 欧美色图12p| 国产拍欧美日韩视频二区| 日韩专区中文字幕一区二区| a4yy欧美一区二区三区| 久久综合视频网| 亚洲成av人片一区二区三区| 99精品热视频| 久久丝袜美腿综合| 久久国产精品色| 欧美日韩一区二区三区在线| 亚洲视频在线观看一区| 国产白丝精品91爽爽久久| 精品剧情v国产在线观看在线| 亚洲高清免费在线| 91美女在线观看| 国产精品婷婷午夜在线观看| 韩国女主播成人在线观看| 欧美精品三级在线观看| 亚洲无线码一区二区三区| 色婷婷综合在线| 国产精品久久久久久久久久久免费看 | 中文字幕亚洲电影| 国产99精品国产| 久久久久久久久久看片| 玖玖九九国产精品| 欧美变态口味重另类| 日韩精品每日更新| 欧美一区二区在线播放| 天天做天天摸天天爽国产一区| 欧美视频一区二区| 午夜精品久久一牛影视| 91精品国产综合久久久久| 日韩经典中文字幕一区| 欧美一区二区三区免费视频| 日本va欧美va精品发布| 精品国产乱码久久久久久蜜臀| 精品综合免费视频观看| 久久久久久久电影| 成年人国产精品| 亚洲精品免费一二三区| 欧美日韩日日骚| 免费成人av资源网| 久久久午夜电影| 99精品一区二区三区| 亚洲香蕉伊在人在线观| 欧美一区二区啪啪| 国产成人精品免费网站| 日韩伦理电影网| 欧美高清视频一二三区 | 久久久另类综合| 国产suv精品一区二区883| 亚洲精品免费视频| 欧美一区二区福利在线| 国产99精品国产| 亚洲一区二区在线视频| 欧美一区二区国产| 91在线观看一区二区| 午夜视频在线观看一区二区| 久久在线免费观看| 91一区一区三区| 免费精品视频在线| 国产精品视频第一区| 欧美日韩在线不卡| 国产精品 日产精品 欧美精品| 亚洲精品成人少妇| wwwwww.欧美系列| 欧美日韩一区二区三区免费看| 国产高清精品久久久久| 午夜精品一区在线观看| 中文字幕成人在线观看| 欧美猛男超大videosgay| 国产毛片精品视频| 五月天中文字幕一区二区| 国产午夜精品在线观看| 欧美三级电影网站| 国产成人综合在线| 日韩成人一区二区三区在线观看| 国产精品免费看片| 欧美xxx久久| 欧美日韩国产乱码电影| 成人教育av在线| 久久se这里有精品| 午夜电影一区二区| 亚洲六月丁香色婷婷综合久久 | 欧美午夜片在线看| 成人激情开心网| 精品一区二区在线看| 亚洲综合激情网| 18涩涩午夜精品.www| 国产亚洲精品免费| 欧美videos中文字幕| 欧美精品在线视频| 91国产丝袜在线播放| 不卡一区二区在线| 国产成人精品亚洲午夜麻豆| 精品一区二区日韩| 免费看日韩a级影片| 亚洲午夜影视影院在线观看| 国产精品国产三级国产普通话99 | 国产精品中文有码| 韩国一区二区视频| 韩国av一区二区| 久久精品国产免费| 美国欧美日韩国产在线播放| 日本不卡在线视频| 三级一区在线视频先锋 | 成人黄色软件下载| 成人美女在线观看| 成人高清视频在线| 成人一级视频在线观看| 国产精品亚洲一区二区三区在线| 国产一区二区福利| 国产成人免费视频| 成人av在线网站| 97久久精品人人做人人爽| 91丝袜美女网| 欧美三区在线观看| 欧美电影免费观看高清完整版| 欧美一区二区三区四区久久| 欧美一卡二卡三卡四卡| 精品国产成人系列| 中文av一区特黄| 亚洲激情五月婷婷| 三级一区在线视频先锋| 激情欧美一区二区三区在线观看| 国产电影一区二区三区| 99精品国产99久久久久久白柏| 91丝袜国产在线播放| 欧美精品电影在线播放| 日韩色视频在线观看| 欧美国产日本韩| 亚洲精品欧美激情| 久久国产视频网| 成人av在线资源网站| 欧美日本高清视频在线观看| 精品国产一区二区精华| 自拍av一区二区三区| 日韩av电影免费观看高清完整版 | 奇米精品一区二区三区四区| 国内一区二区视频| 色欧美日韩亚洲| 日韩欧美国产一区二区在线播放| 国产欧美综合色| 亚洲sss视频在线视频| 国产精品一区久久久久| 91免费国产在线| 日韩你懂的电影在线观看| 日韩毛片视频在线看| 免费欧美日韩国产三级电影| www.综合网.com| 日韩三级电影网址| 亚洲激情在线播放| 国产九色sp调教91| 在线不卡的av| 亚洲精品视频在线看| 国产馆精品极品| 欧美一级日韩免费不卡| 亚洲老妇xxxxxx| 国产精品一区二区在线观看不卡 | 91影院在线免费观看| 精品粉嫩aⅴ一区二区三区四区| 亚洲欧美日韩在线| 国产剧情一区二区| 欧美一二三四区在线| 一区二区三区四区亚洲| 国产高清精品在线| 精品国内片67194| 日本亚洲欧美天堂免费| 在线看不卡av| 国产精品另类一区| 精品亚洲欧美一区| 欧美一区二区成人| 午夜日韩在线观看| 精品视频一区三区九区| 亚洲欧美视频一区| av在线综合网| 国产精品伦理一区二区| 高清免费成人av| 久久久久久一二三区| 韩国精品主播一区二区在线观看| 欧美一级理论性理论a| 无码av免费一区二区三区试看| 91浏览器打开| 中文字幕中文字幕在线一区| 国产盗摄女厕一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 青青草国产精品亚洲专区无| 欧美精品成人一区二区三区四区| 亚洲成av人片www| 欧美一卡在线观看| 国内成人免费视频| 久久久久久久电影| 97久久精品人人做人人爽|