打印

关于DAC产生波形的问题

[复制链接]
1053|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
16号哨兵|  楼主 | 2015-10-31 11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DAC, GPIO, rc, pi, IO
     RCC->APB2ENR|=1<<2;    //使能PORTA时钟

  GPIOA->CRL&=0XFFF0FFFF;
  GPIOA->CRL|=0X00030000;//PA4 推挽输出     
  GPIOA->ODR|=1<<4;      //PA4 输出高

  DAC->CR|=0x7<<3; //设置软件触发
  DAC->CR|=0x3<<6; //设置噪声发生器
  DAC->CR|=1<<11; //
  DAC->CR|=1<<0;//使能DAC通道
  DAC->CR|=1<<2;
  DAC->DHR12L1=0x7FF0;

这样配置对吗?  就是没有波形输出  

相关帖子

沙发
yyj8902| | 2015-10-31 11:13 | 只看该作者
冒似DAC时钟没有开启吧?

使用特权

评论回复
板凳
16号哨兵|  楼主 | 2015-10-31 11:13 | 只看该作者
yyj8902 发表于 2015-10-31 11:13
冒似DAC时钟没有开启吧?

我时钟开过了,而且触发也写了还是没有啊

使用特权

评论回复
地板
yyj8902| | 2015-10-31 11:14 | 只看该作者
16号哨兵 发表于 2015-10-31 11:13
我时钟开过了,而且触发也写了还是没有啊

void Dac_Init(void)
{
RCC->APB2ENR|=1<<2;    //使能PORTA时钟                 
RCC->APB1ENR|=1<<29;   //使能DAC时钟                 
             
GPIOA->CRL&=0XFFF0FFFF;  
GPIOA->CRL|=0X00030000;//PA4 推挽输出             
    GPIOA->ODR|=1<<4;      //PA4 输出高

DAC->CR|=1<<0;        //使能DAC1
DAC->CR|=1<<1;        //DAC1输出缓存使能 BOFF1=1
DAC->CR|=0<<2;        //不使用触发功能 TEN1=0
DAC->CR|=0<<3;        //DAC TIM6 TRGO,不过要TEN1=1才行
DAC->CR|=0<<6;        //不使用波形发生
DAC->CR|=0<<8;        //屏蔽、幅值设置
DAC->CR|=0<<12;        //DAC1 DMA不使能     

DAC->DHR12R1=0;
}


然后主函数:
int main(void)
{       
u8 dir=0,t;
u16 i=0;
   
          Stm32_Clock_Init(9);//系统时钟设置
delay_init(72);         //延时初始化
uart_init(72,9600); //串口1初始化   
Dac_Init();
//LED_Init();                    //LED初始化
//KEY_Init();                    //按键初始化
//LCD_Init();             //TFTLCD液晶初始化
while(1)
{                          
delay_us(1);       
DAC->DHR12R1=i;
if(dir==0)i++;
else i--;
if(i>=4095)
{
dir=1;
t++;
}else if(i==0)dir=0;
if(t>100)
{
t=0;       
printf("50 circle\n\r");   
}
}
}

使用特权

评论回复
5
16号哨兵|  楼主 | 2015-10-31 11:14 | 只看该作者
yyj8902 发表于 2015-10-31 11:14
void Dac_Init(void)
{
RCC->APB2ENR|=1ODR|=1

谢谢大神,可以了

使用特权

评论回复
6
16号哨兵|  楼主 | 2015-10-31 11:15 | 只看该作者
yyj8902 发表于 2015-10-31 11:14
void Dac_Init(void)
{
RCC->APB2ENR|=1ODR|=1

  "一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连(DAC_OUTx) 。为了避免寄生的干扰和额外的功耗,引脚PA4 或者PA5 在之前应当设置成模拟输入(AIN)。"
这句话是数据手册上面的,请问用到DA输出的时候,PA4和PA5究竟应该设成那种MODE?我看你上面的程序里面是推免输出...

使用特权

评论回复
7
yyj8902| | 2015-10-31 11:15 | 只看该作者
16号哨兵 发表于 2015-10-31 11:15
"一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连(DAC_OUTx) 。为了避免寄 ...

推挽输出和模拟输入都可以。不过最好设置为模拟输入吧!

使用特权

评论回复
8
电子玩霸| | 2015-11-7 16:52 | 只看该作者
16号哨兵 发表于 2015-10-31 11:15
"一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连(DAC_OUTx) 。为了避免寄 ...

你看GPIO那一章,有介绍的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

134

帖子

0

粉丝