娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32 波形

發布者:悠然自在最新更新時間:2024-10-15 來源: cnblogs關鍵字:STM32  波形  三角波 手機看文章 掃描二維碼
隨時隨地手機看文章

只有給外設開啟了時鐘, 才能操作和控制外設。

//

產生三角波

在上述代碼基礎上加入下面代碼,其中部分代碼替代

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

     TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;

  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);

  TIM_TimeBaseStructure.TIM_Period = 0xF;         

  TIM_TimeBaseStructure.TIM_Prescaler = 0xF;      

  TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;   

  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 

  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);

 

  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;

  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Triangle;

  DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_TriangleAmplitude_2047;

 

3.3 利用DMA產生正弦波(DAC2)和直流電壓值(DAC1)

uint16_t g_Wave[128];

uint16_t DAC1_Value[1];

 

 const uint16_t SineData[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};

 

void RCC_DAC_Config(void)

{

RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

}

 

void GPIO_DAC_Config(void)

{        

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIOA,&GPIO_InitStructure);

}

 

 

void DAC_Config(void)

{

uint32_t i=0;

DMA_InitTypeDef DMA_InitStructure;

DAC_InitTypeDef DAC_InitStructure;

 

DAC1_Value[0]=4096*0.612;

for(i=0;i<32;i++)

{

//g_Wave[i]=DAC2_SineWave[i] *0.606; //Vpp =2.0V

g_Wave[i]=SineData[i] *0.606; //Vpp =2.0V

}

RCC_DAC_Config();

GPIO_DAC_Config();

 

         TIM_PrescalerConfig(TIM2,0,TIM_PSCReloadMode_Update);

 

TIM_SetAutoreload(TIM2, 22);

TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);

 

  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;

  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

#if  0

DAC_Init(DAC_Channel_1, &DAC_InitStructure);        

 

DMA_DeInit(DMA2_Channel3);

  DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12R1_Address;

  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&DAC1_Value;

DMA_InitStructure.DMA_BufferSize = 1;

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;

  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);

  DMA_Cmd(DMA2_Channel3, ENABLE);

 

 

DAC_Cmd(DAC_Channel_1, ENABLE);

  DAC_DMACmd(DAC_Channel_1, ENABLE);

  TIM_Cmd(TIM2, ENABLE);

 

#else

DAC_Init(DAC_Channel_2, &DAC_InitStructure);        

 

DMA_DeInit(DMA2_Channel4);

DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12R2_Address;

DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&g_Wave;

DMA_InitStructure.DMA_BufferSize = 32;

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;

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_Channel4,&DMA_InitStructure);

DMA_Cmd(DMA2_Channel4,ENABLE);

 

DAC_Cmd(DAC_Channel_2,ENABLE);

DAC_DMACmd(DAC_Channel_2,ENABLE);

 

TIM_Cmd(TIM2,ENABLE);

 

#endif

}


關鍵字:STM32  波形  三角波 引用地址:STM32 波形

上一篇:STM32的時鐘系統
下一篇:STM32固件庫SYSTEM 文件夾介紹

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 内黄县| 札达县| 高雄县| 双鸭山市| 眉山市| 毕节市| 新民市| 密山市| 贵定县| 汪清县| 江津市| 昌平区| 阳西县| 曲阳县| 贵定县| 宜君县| 靖宇县| 柘城县| 太原市| 三明市| 桂东县| 贵阳市| 台湾省| 绥滨县| 博兴县| 东莞市| 万盛区| 师宗县| 保德县| 克什克腾旗| 迁安市| 锡林郭勒盟| 修水县| 新竹市| 革吉县| 青海省| 霍林郭勒市| 和龙市| 黄石市| 高要市| 吉水县|