AD9910-DDS模块驱动stm32f407

巴渝小禹RARAD9910_stm32f4.rar  460.5KB

资源文件列表:

RAR AD9910_stm32f4.rar 大约有105个文件
  1. 010AD9910_stm32f4\DebugConfig\Target_1_STM32F407ZGTx.dbgconf 653B
  2. 010AD9910_stm32f4\EventRecorderStub.scvd 233B
  3. 010AD9910_stm32f4\Hardware\AD9910.c 7.8KB
  4. 010AD9910_stm32f4\Hardware\AD9910.h 837B
  5. 010AD9910_stm32f4\keilkill.bat 187B
  6. 010AD9910_stm32f4\Libraries\CMSIS\core_cm4.h 15.42KB
  7. 010AD9910_stm32f4\Libraries\CMSIS\core_cm4_simd.h 2.67KB
  8. 010AD9910_stm32f4\Libraries\CMSIS\core_cmFunc.h 2.92KB
  9. 010AD9910_stm32f4\Libraries\CMSIS\core_cmInstr.h 3.77KB
  10. 010AD9910_stm32f4\Libraries\CMSIS\startup_stm32f40_41xxx.s 3.54KB
  11. 010AD9910_stm32f4\Libraries\CMSIS\system_stm32f4xx.c 7.09KB
  12. 010AD9910_stm32f4\Libraries\CMSIS\system_stm32f4xx.h 886B
  13. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\misc.h 1.76KB
  14. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_adc.h 4.39KB
  15. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_can.h 4.87KB
  16. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_crc.h 929B
  17. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_cryp.h 2.87KB
  18. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dac.h 2.48KB
  19. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dbgmcu.h 1.14KB
  20. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dcmi.h 2.69KB
  21. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma.h 4.05KB
  22. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma2d.h 2.93KB
  23. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_exti.h 1.86KB
  24. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash.h 3.88KB
  25. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash_ramfunc.h 1.18KB
  26. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fmc.h 6.47KB
  27. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fsmc.h 4.25KB
  28. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_gpio.h 3.32KB
  29. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_hash.h 2.52KB
  30. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_i2c.h 6.62KB
  31. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_iwdg.h 1.21KB
  32. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_ltdc.h 3.55KB
  33. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h 1.77KB
  34. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h 3.94KB
  35. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h 1.28KB
  36. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h 5.86KB
  37. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sai.h 4.24KB
  38. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h 3.72KB
  39. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h 3.69KB
  40. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h 1.59KB
  41. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h 6.43KB
  42. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h 3.43KB
  43. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h 1.17KB
  44. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c 2.6KB
  45. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c 9.85KB
  46. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c 9.72KB
  47. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c 1.18KB
  48. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c 7.44KB
  49. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c 4.57KB
  50. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c 2.14KB
  51. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c 2.16KB
  52. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c 4.8KB
  53. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c 1.53KB
  54. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c 3.9KB
  55. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c 9.18KB
  56. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma2d.c 4.51KB
  57. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c 2.39KB
  58. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c 8.06KB
  59. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash_ramfunc.c 1.57KB
  60. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fmc.c 7.61KB
  61. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c 5.54KB
  62. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c 4.17KB
  63. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c 6.07KB
  64. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c 2.13KB
  65. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c 2.11KB
  66. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c 9.39KB
  67. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c 2.51KB
  68. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_ltdc.c 6.47KB
  69. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c 7.25KB
  70. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c 13.35KB
  71. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c 3.39KB
  72. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c 14.76KB
  73. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sai.c 8.42KB
  74. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c 6.35KB
  75. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c 10.06KB
  76. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c 2.64KB
  77. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c 13.1KB
  78. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c 9.58KB
  79. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c 2.71KB
  80. 010AD9910_stm32f4\Object\Project.hex 10.65KB
  81. 010AD9910_stm32f4\Project.uvguix.Lenovo 6.53KB
  82. 010AD9910_stm32f4\Project.uvoptx 2.54KB
  83. 010AD9910_stm32f4\Project.uvprojx 3.42KB
  84. 010AD9910_stm32f4\System\delay.c 2.57KB
  85. 010AD9910_stm32f4\System\delay.h 140B
  86. 010AD9910_stm32f4\System\sys.c 331B
  87. 010AD9910_stm32f4\System\sys.h 862B
  88. 010AD9910_stm32f4\System\usart.c 1.81KB
  89. 010AD9910_stm32f4\System\usart.h 353B
  90. 010AD9910_stm32f4\User\main.c 606B
  91. 010AD9910_stm32f4\User\stm32f4xx.h 54.11KB
  92. 010AD9910_stm32f4\User\stm32f4xx_conf.h 1.43KB
  93. 010AD9910_stm32f4\User\stm32f4xx_it.c 1.16KB
  94. 010AD9910_stm32f4\User\stm32f4xx_it.h 855B
  95. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\inc
  96. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver\src
  97. 010AD9910_stm32f4\Libraries\CMSIS
  98. 010AD9910_stm32f4\Libraries\STM32F4xx_StdPeriph_Driver
  99. 010AD9910_stm32f4\DebugConfig
  100. 010AD9910_stm32f4\Hardware
  101. 010AD9910_stm32f4\Libraries
  102. 010AD9910_stm32f4\Object
  103. 010AD9910_stm32f4\System
  104. 010AD9910_stm32f4\User
  105. 010AD9910_stm32f4

资源介绍:

AD9910是一款高性能、高精度的数字直接合成(DDS)芯片,广泛应用于射频与微波信号发生器、测试设备以及通信系统等领域。STM32F407是意法半导体公司推出的基于ARM Cortex-M4内核的微控制器,拥有强大的计算能力和丰富的外设接口,适用于各种嵌入式应用。 在“AD9910-DDS模块驱动stm32f407”项目中,主要涉及以下关键知识点: 1. 数字直接合成(DDS)技术:DDS是一种利用数字信号处理技术来产生模拟正弦波的方法。它通过快速改变频率控制字来改变输出信号的频率,具有频率分辨率高、频率切换速度快和输出信号质量高等优点。AD9910作为DDS芯片,能提供高达1.6GHz的输出频率,并支持多种波形输出。 2. AD9910芯片特性:AD9910具有内置的相位累加器、频率调制器、DA转换器和低通滤波器。用户可以通过SPI或并行接口设置频率控制字、相位偏移和幅度控制,实现对输出信号的精细调节。 3. STM32F407微控制器:STM32F407系列是STM32家族的一员,具备浮点运算单元(FPU)、高速存储器和多种外设接口。在驱动AD9910时,其强大的处理能力可以轻松处理DDS算法的计算任务,同时,通过SPI接口与AD9910进行通信,控制DDS的工作状态。 4. 驱动程序开发:驱动程序是操作系统与硬件设备之间的桥梁,它定义了如何操作和控制硬件。在这个项目中,开发者需要编写针对AD9910的驱动程序,包括初始化配置、频率设置、波形控制等功能。驱动程序通常包含初始化函数、数据传输函数和状态查询等部分。 5. Keil集成开发环境(IDE):Keil是常用的嵌入式开发工具,提供了C/C++编译器、调试器和项目管理工具。在Keil中创建的工程文件,可以帮助开发者组织代码、编译和调试程序。 6. 嵌入式系统编程:在嵌入式系统中,程序需要直接控制硬件,因此开发者需要理解硬件的工作原理,并且能够熟练使用中断、定时器等系统资源。 7. 电子竞赛(电赛)应用:这个项目可能源于电子设计竞赛,参赛者需要使用STM32和AD9910构建一个功能完整的信号发生器,这涉及到电路设计、软件开发和实际操作技能。 "AD9910-DDS模块驱动stm32f407"项目涵盖了DDS技术、微控制器应用、驱动程序设计、嵌入式系统开发等多个领域,对于学习和提升嵌入式系统的开发能力具有很高的价值。通过这个项目,开发者可以深入理解数字信号处理、微控制器硬件接口和软件驱动的实现细节。

/** ****************************************************************************** * @file stm32f4xx_tim.c * @author MCD Application Team * @version V1.4.0 * @date 04-August-2014 * @brief This file provides firmware functions to manage the following * functionalities of the TIM peripheral: * + TimeBase management * + Output Compare management * + Input Capture management * + Advanced-control timers (TIM1 and TIM8) specific features * + Interrupts, DMA and flags management * + Clocks management * + Synchronization management * + Specific interface management * + Specific remapping management * @verbatim =============================================================================== ##### How to use this driver ##### =============================================================================== [..] This driver provides functions to configure and program the TIM of all STM32F4xx devices. These functions are split in 9 groups: (#) TIM TimeBase management: this group includes all needed functions to configure the TM Timebase unit: (++) Set/Get Prescaler (++) Set/Get Autoreload (++) Counter modes configuration (++) Set Clock division (++) Select the One Pulse mode (++) Update Request Configuration (++) Update Disable Configuration (++) Auto-Preload Configuration (++) Enable/Disable the counter (#) TIM Output Compare management: this group includes all needed functions to configure the Capture/Compare unit used in Output compare mode: (++) Configure each channel, independently, in Output Compare mode (++) Select the output compare modes (++) Select the Polarities of each channel (++) Set/Get the Capture/Compare register values (++) Select the Output Compare Fast mode (++) Select the Output Compare Forced mode (++) Output Compare-Preload Configuration (++) Clear Output Compare Reference (++) Select the OCREF Clear signal (++) Enable/Disable the Capture/Compare Channels (#) TIM Input Capture management: this group includes all needed functions to configure the Capture/Compare unit used in Input Capture mode: (++) Configure each channel in input capture mode (++) Configure Channel1/2 in PWM Input mode (++) Set the Input Capture Prescaler (++) Get the Capture/Compare values (#) Advanced-control timers (TIM1 and TIM8) specific features (++) Configures the Break input, dead time, Lock level, the OSSI, the OSSR State and the AOE(automatic output enable) (++) Enable/Disable the TIM peripheral Main Outputs (++) Select the Commutation event (++) Set/Reset the Capture Compare Preload Control bit (#) TIM interrupts, DMA and flags management (++) Enable/Disable interrupt sources (++) Get flags status (++) Clear flags/ Pending bits (++) Enable/Disable DMA requests (++) Configure DMA burst mode (++) Select CaptureCompare DMA request (#) TIM clocks management: this group includes all needed functions to configure the clock controller unit: (++) Select internal/External clock (++) Select the external clock mode: ETR(Mode1/Mode2), TIx or ITRx (#) TIM synchronization management: this group includes all needed functions to configure the Synchronization unit: (++) Select Input Trigger (++) Select Output Trigger (++) Select Master Slave Mode (++) ETR Configuration when used as external trigger (#) TIM specific interface management, this group includes all needed functions to use the specific TIM interface: (++) Encoder Interface Configuration (++) Select Hall Sensor (#) TIM specific remapping management includes the Remapping configuration of specific timers @endverbatim ****************************************************************************** * @attention * * <h2><center>© COPYRIGHT 2014 STMicroelectronics</center></h2> * * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_tim.h" #include "stm32f4xx_rcc.h" /** @addtogroup STM32F4xx_StdPeriph_Driver * @{ */ /** @defgroup TIM * @brief TIM driver modules * @{ */ /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* ---------------------- TIM registers bit mask ------------------------ */ #define SMCR_ETR_MASK ((uint16_t)0x00FF) #define CCMR_OFFSET ((uint16_t)0x0018) #define CCER_CCE_SET ((uint16_t)0x0001) #define CCER_CCNE_SET ((uint16_t)0x0004) #define CCMR_OC13M_MASK ((uint16_t)0xFF8F) #define CCMR_OC24M_MASK ((uint16_t)0x8FFF) /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter); static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter); static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter); static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter); /* Private functions ---------------------------------------------------------*/ /** @defgroup TIM_Private_Functions * @{ */ /** @defgroup TIM_Group1 TimeBase management functions * @brief TimeBase management functions * @verbatim =============================================================================== ##### TimeBase management functions ##### =============================================================================== ##### TIM Driver: how to use it in Timing(Time base) Mode ##### =============================================================================== [..] To use the Timer in Timing(Time base) mode, the following steps are mandatory: (#) Enable TIM clock using RCC_APBxPeriphClockCmd&#40;RCC_APBxPeriph_TIMx, ENABLE&#41; function (#) Fill the TIM_TimeBaseInitStruct with the desired parameters. (#) C
100+评论
captcha