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

歷史上的今天

今天是:2024年12月07日(星期六)

2020年12月07日 | STM32 —— 多路DAC(輸出電壓和正弦波)

發布者:Yuexiang 來源: elecfans關鍵字:STM32  輸出電壓  正弦波 手機看文章 掃描二維碼
隨時隨地手機看文章

//========================================DAC=========================================

#define DA_OUT1_CHANNEL    DAC_Channel_1

#define DA_OUT1_GRP        GPIOA

#define DA_OUT1_INDEX      GPIO_Pin_4

#define DA_OUT1_HIGH()     GPIO_SetBits(DA_OUT1_GRP, DA_OUT1_INDEX)

#define DA_OUT1_CONFIG()   GPIOConfig(DA_OUT1_GRP, DA_OUT1_INDEX, GPIO_Mode_AIN)

 

#define DA_OUT2_CHANNEL    DAC_Channel_2

#define DA_OUT2_GRP        GPIOA

#define DA_OUT2_INDEX      GPIO_Pin_5

#define DA_OUT2_HIGH()     GPIO_SetBits(DA_OUT2_GRP, DA_OUT2_INDEX)

#define DA_OUT2_CONFIG()   GPIOConfig(DA_OUT2_GRP, DA_OUT2_INDEX, GPIO_Mode_AIN)


#ifndef _DAC_H_

#define _DAC_H_

 

void DAC1Init(void);

void DAC1OutVoltage(float data);

void DAC2Init(void);

 

#endif /* _DAC_H_ */


#include "dac.h"

//#include "target.h"

#include "type.h"

 

#define DAC_DHR12RD_ADDRESS      0x40007420

 

static const uint16_t sin[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

 

};

static uint32_t dual_sin[32];

static uint8_t index = 0;

// PA4

static void dac1_clk_init(void)

{

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

}

 

static void dac1_gpio_init(void)

{

  DA_OUT1_CONFIG();

  DA_OUT1_HIGH();

}

 

static void dac1_mode_init(void)

{

  DAC_InitTypeDef DAC_InitStructure;

 

  DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;

  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

  DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bits11_0;

  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;

  DAC_Init(DA_OUT1_CHANNEL, &DAC_InitStructure);

 

  DAC_Cmd(DA_OUT1_CHANNEL, ENABLE);

}

 

void DAC1Init(void)

{

  dac1_clk_init();

  dac1_gpio_init();

  dac1_mode_init();

}

 

// DAC1OutVoltage(1.5);// 1.5V out

void DAC1OutVoltage(float data)

{

  uint16_t value;

 

  value = (uint16_t)((data / 3.3) * 4096);

 

  DAC_SetChannel1Data(DAC_Align_12b_R, value);

  DAC_SoftwareTriggerCmd(DA_OUT1_CHANNEL, ENABLE);

}

 

static void dac2_clk_init(void)

{

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);

}

 

static void dac2_gpio_init(void)

{

  DA_OUT2_CONFIG();

  DA_OUT2_HIGH();

}

 

static void dac2_timer_init(void)

{

  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

 

  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(TIM8, &TIM_TimeBaseStructure);

 

  /* TIM8 TRGO selection */

  TIM_SelectOutputTrigger(TIM8, TIM_TRGOSource_Update);

}

 

static void dac2_mode_init(void)

{

  DAC_InitTypeDef DAC_InitStructure;

 

  /* DAC channel2 Configuration */

  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T8_TRGO;

  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

  DAC_Init(DA_OUT2_CHANNEL, &DAC_InitStructure);

 

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

  {

    dual_sin[index] = (sin[index] << 16) + sin[index];

  }

}

 

static void dac2_dma_init(void)

{

  DMA_InitTypeDef DMA_InitStructure;

 

  /* DMA2 channel4 configuration */

  DMA_DeInit(DMA2_Channel4);

  DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_ADDRESS;

  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&dual_sin;

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

  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;

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

}

 

static void dac2_enable(void)

{

  DMA_Cmd(DMA2_Channel4, ENABLE);

  DAC_Cmd(DA_OUT2_CHANNEL, ENABLE);

  DAC_DMACmd(DA_OUT2_CHANNEL, ENABLE);

  TIM_Cmd(TIM8, ENABLE);

}

 

void DAC2Init(void)

{

  dac2_clk_init();

  dac2_gpio_init();

  dac2_timer_init();

  dac2_mode_init();

  dac2_dma_init();

  dac2_enable();

}


關鍵字:STM32  輸出電壓  正弦波 引用地址:STM32 —— 多路DAC(輸出電壓和正弦波)

上一篇:STM32f103 —— 內部flash讀寫
下一篇:STM32——按鍵

推薦閱讀

Strategy Analytics:全球2億家庭現擁有超高清電視 Strategy Analytics聯網家庭設備研究服務發布的最新研究報告《4K和8K超高清電視全球市場預測》指出,全球使用超高清電視的家庭數量現已超過2億。 該報告稱預計,2018年底,將有2.22億家庭擁有超高清電視,在過去的12個月中增長近50%。預計2023年將有超過6億家庭擁有超高清電視。絕大多數家庭將擁有4K...
任務設計一個簡易數字信號傳輸性能分析儀,實現數字信號傳輸性能測試;同時,設計三個低通濾波器和一個偽隨機信號發生器用來模擬傳輸信道。簡易數字信號傳輸性能分析儀的框圖如圖 1 所示。圖中,V1 和 V1-clock 是數字信號發生器產生的數字信號和相應的時鐘信號;V2 是經過濾波器濾波后的輸出信號;V3 是偽隨機信號發生器產生的偽隨機信號;V2a 是...
爆料者 @TheLeaks3 今日表示,OPPO Reno 5 系列還將推出一款 4G 機型,但未透露是否會在 12 月 10 日的發布會上亮相。  他表示 OPPO Reno 5 4G 將搭載高通驍龍 720G 芯片,采用 6.43 英寸 90Hz 刷新率的 FHD + 屏幕,后置依然是 64MP+8MP+2MP+2MP 四攝,前置同樣是 44MP 鏡頭,這兩項與 Reno 5 相同,內置 43...
【2021年12月7日】Gartner最新研究揭示,基礎設施和運營(I&O)領導人在未來12至18個月必須開始為六個趨勢做好準備。Gartner研究副總裁Jeffrey Hewitt表示:“基礎設施和運營領導人需要推動變革,而不僅僅是吸收變革。他們需要能夠在任何地點為日益分散的員工隊伍提供更具適應性和彈性的服務。這正在迫使基礎設施和運營領導人采取行動,作出更加符合業務...

史海拾趣

問答坊 | AI 解惑

用CP2101將USB口擴展成串口

用CP2101將USB口擴展成串口     摘要:CP2101及其升級產品CP2102最美國Silicon公司生產的高集成度USB-UART橋接電路。它們能夠用最簡單的外部電路、最少的外部器件及最小的電路板面積簡便實現USB2.0到UART的轉換。文中介紹該電路的主要特 ...…

查看全部問答∨

市面上現在熱銷的P10_16X32LED點陣原理圖,獨家放送!

市面上現在熱銷的P10_16X32LED點陣原理圖,獨家放送!由于廠家保密不給原理圖和源程序,為了方便自己和大家手工制作,熬夜繪制的詳細原理圖,麻煩大蝦編個顯示漢字的程序給我, 不勝感激! 放圖:…

查看全部問答∨

病毒

為什么電腦盤符里面文件夾都出現一個內容相同的快捷方式    刪了又會重復出現  謝謝…

查看全部問答∨

Wince與Oracle問題,大家一起搞定他

wince 連接PC Oracle都能通過什魔方式?如何做?這問題我看很多人都問過,大家把想法意見都列出來,徹底解決他.^_^…

查看全部問答∨

基于STM32的最新論文

傳三篇基于STM32應用的最新的博士論文 基于STM32處理器和PC主機的USB通信協議的實現.pdf (3.05 MB) 下載次數:271 2010-12-23 19:22 2009 山東大學 博士論文 基于STM32處理器和PC主機的USB通信協議的實現 ...…

查看全部問答∨

針對Altera Stratix IV EP4SGX360 和 EP4SGX530 器件的電源參考設計

Altera® Stratix™ IV FPGA EP4SGX360及EP4SGX530參考設計展示了TI配電系統插入式電源模塊…

查看全部問答∨

【設計工具】說明ISE+timing+constrain+的用法

  wConstraints Guide: Quick Start Guide appendix H. wUsing Timing Constraints: Developmental System Reference Guide chapter 6. wTiming Analyzer: Timing Analyzer Reference/User Guide. wTRCE: Developmental System Refer ...…

查看全部問答∨

MSP430不能下載成功

顯示的錯誤信息,跟不接學習板,采用硬件仿真的提示錯誤信息一樣。 為: fatal error unknown exception in driver(#E1) session aborted!…

查看全部問答∨

關于移植后編寫數據采集任務的問題

各位:       現有一個問題問一下大家,我在28335上移植了ucos2,現在想用它采集數據,但ucos的時鐘比較慢,無法使用,于是我想嘗試使用28335的另外一個定時器中斷采集數據,但是這個定時器中斷的頻率要遠高于ucos的定時 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 昌图县| 错那县| 威信县| 鲁山县| 焦作市| 赞皇县| 新宁县| 嘉荫县| 阳新县| 万宁市| 资中县| 白玉县| 南宫市| 文化| 宣武区| 满洲里市| 桦川县| 沿河| 金湖县| 巴林右旗| 孝义市| 应用必备| 罗城| 通渭县| 定结县| 荣成市| 舟山市| 博爱县| 晋中市| 呼图壁县| 疏勒县| 康定县| 高青县| 襄垣县| 麟游县| 禹州市| 耿马| 林周县| 井冈山市| 娄烦县| 新龙县|