你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 6064|回复: 18

DAC问题求助,没信号输出【悬赏问答】

[复制链接]

4

主题

26

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-7-5 10:36:20 | 显示全部楼层 |阅读模式
小弟初学者,问板上大侠。我在用DAC做信号输出,三角波可以正常输出,现在在用DMA做正弦信号输出。网上找的一份例程,几经修改,才经过编译没有错误,但就是示波器检测不到信号。哪位好心人帮着看下呗。

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h"
#include


/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define DAC1_DHR8R1_Address      0x40007408

/* Init Structure definition */
DAC_InitTypeDef            DAC_InitStructure;
DMA_InitTypeDef            DMA_InitStructure;
TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;

/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
ErrorStatus HSEStartUpStatus;
u16 Sine12bit[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};

u32 DualSine12bit[32];
u8 Idx = 0;

/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);

/* Private functions ---------------------------------------------------------*/

/*******************************************************************************
* Function Name  : main
* Description    : Main program.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
int main(void)
{
#ifdef DEBUG
  debug();
#endif
   /* GPIO configuration */
  GPIO_Configuration();

  /* System Clocks Configuration */
  RCC_Configuration();   


  /* NVIC Configuration */
  NVIC_Configuration();

  /* TIM2 Configuration */
  /* Time base configuration */
  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); 
  TIM_TimeBaseStructure.TIM_Period = 0x19;          
  TIM_TimeBaseStructure.TIM_Prescaler = 0x00;       
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;    
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  /* TIM8 TRGO selection */
  TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);

  /* DAC channel1 Configuration */
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);

  /* Fill Sine32bit table */
  for (Idx= 0; Idx
回复

使用道具 举报

4

主题

26

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-7-5 10:39:26 | 显示全部楼层

回复:DAC问题求助,没信号输出

开发板,STM32F107VCT6
回复 支持 反对

使用道具 举报

3

主题

16

回帖

0

蝴蝶豆

初级会员

最后登录
2020-10-20
发表于 2012-7-5 13:48:40 | 显示全部楼层

RE:DAC问题求助,没信号输出

void GPIO_Configuration(void)
配置为模拟通道在试试
回复 支持 反对

使用道具 举报

4

主题

26

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-7-5 14:27:05 | 显示全部楼层

回复:DAC问题求助,没信号输出

回复第 3 楼 于2012-07-05 13:48:40发表:
void GPIO_Configuration(void)
配置为模拟通道在试试 

刚试了下,还是没效果。。。
回复 支持 反对

使用道具 举报

3

主题

16

回帖

0

蝴蝶豆

初级会员

最后登录
2020-10-20
发表于 2012-7-5 14:32:32 | 显示全部楼层

RE:DAC问题求助,没信号输出

你在程序运行时,看看DAC数据寄存器的值对不对,可能DMA配置有问题,word
回复 支持 反对

使用道具 举报

4

主题

26

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-7-5 15:36:11 | 显示全部楼层

回复:DAC问题求助,没信号输出

回复第 5 楼 于2012-07-05 14:32:32发表:
你在程序运行时,看看DAC数据寄存器的值对不对,可能DMA配置有问题,word
DMA_PeripheralDataSize,DMA_MemoryDataSize配置成byte和half_word都试了一下,没有什么效果。
另外弱问,怎样在程序运行时,查看DAC数据寄存器的值呀?新手,谅解,谢谢,是串口输出,还是特殊的软件工具?
 
回复 支持 反对

使用道具 举报

2

主题

240

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-11
发表于 2012-7-12 15:32:08 | 显示全部楼层

RE:DAC问题求助,没信号输出【悬赏问答】

你仔细检查一下你的DMA配置项,看看是不是哪里没有设置对,看一下地址引用的地方是不是有问题。
回复 支持 反对

使用道具 举报

1

主题

39

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-7-12 15:42:05 | 显示全部楼层

RE:DAC问题求助,没信号输出【悬赏问答】

很有可能是DMA配置项的问题,顺便看看DAC数据寄存器的值对不对。
回复 支持 反对

使用道具 举报

25

主题

446

回帖

0

蝴蝶豆

中级会员

最后登录
2019-12-10
发表于 2012-7-12 19:10:16 | 显示全部楼层

RE:DAC问题求助,没信号输出【悬赏问答】

肯定是DMA设置不对,仔细查查。我试过可以哈
回复 支持 反对

使用道具 举报

7

主题

157

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-7-13 09:49:07 | 显示全部楼层

RE:DAC问题求助,没信号输出【悬赏问答】

试下这段代码
void DAC_Configuration(void)
{
        
       DAC_InitTypeDef DAC_InitStruct;
        GPIO_InitTypeDef GPIO_InitStructure;
        
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        
        /* Configure DAC channe1 outputs pins */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;   
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        DAC_DeInit();
        DAC_Cmd(DAC_Channel_1,ENABLE); //
    //DAC_Cmd(DAC_Channel_2, ENABLE);
        DAC_StructInit(&DAC_InitStruct);//将DAC_Struct的值设为默认
        DAC_InitStruct.DAC_Trigger=DAC_Trigger_Software;//由软件触发
        DAC_InitStruct.DAC_WaveGeneration=DAC_WaveGeneration_None;//关闭波形生成
        DAC_InitStruct.DAC_LFSRUnmask_TriangleAmplitude=DAC_TriangleAmplitude_4095;
        DAC_InitStruct.DAC_OutputBuffer=DAC_OutputBuffer_Enable;//使能DAC通道缓存   
        DAC_Init(DAC_Channel_1,&DAC_InitStruct);
    /* Enable DAC Channel1 */
        DAC_Cmd(DAC_Channel_1, ENABLE);
        DAC_SetChannel1Data(DAC_Align_12b_R,0x000);//12位右对齐,
        DAC_DualSoftwareTriggerCmd(ENABLE);//使能软件触发,更新DAC的值
}
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版