OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1608|回复: 2

F1精英板DAC转换相关

[复制链接]

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2017-11-21
在线时间
19 小时
发表于 2017-11-21 21:32:38 | 显示全部楼层 |阅读模式
相关问题代码见图片,是DAC初始化相关的代码。。

按照代码后边的注释,这几行代码应该是要把对应的寄存器置0,可是用     |=0<<7     之类的语句没有置0的功能啊,,置0不都是用的   &=   吗??

而且经过我的测试,,把这几房代码注释掉之后,,,程序仍然可以正常运行。。但是我把这几行代码里的   |=   改成    &=   之后,程序运行就不正常了。。

具体异常就是      当DAC_VPL==0的时候,,,ADC_VOL不等于0,,值一直在1.730到1.750之间波动。。具体可参见图片二。。。


求原子个解答。。或者其他大佬解答问题。。谢谢。。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2017-11-21
在线时间
19 小时
 楼主| 发表于 2017-11-21 21:33:53 | 显示全部楼层
//DAC通道1输出初始化 void Dac1_Init(void) {         RCC->APB2ENR|=1<<2;//使能PORTA时钟         RCC->APB1ENR|=1<<29;//使能DAC时钟         GPIOA->CRL&=0xFFF0FFFF;         GPIOA->CRL|=0x00000000;//PA4模拟输入          DAC->CR|=1<<0;//使能DAC1         DAC->CR|=1<<1;//DAC输出缓存不使能         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;//12位右对齐数据保存寄存器 }
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2017-11-21
在线时间
19 小时
 楼主| 发表于 2017-11-21 21:34:57 | 显示全部楼层
//DAC通道1输出初始化
void Dac1_Init(void)
{
        RCC->APB2ENR|=1<<2;//使能PORTA时钟
        RCC->APB1ENR|=1<<29;//使能DAC时钟
        GPIOA->CRL&=0xFFF0FFFF;
        GPIOA->CRL|=0x00000000;//PA4模拟输入

        DAC->CR|=1<<0;//使能DAC1
        DAC->CR|=1<<1;//DAC输出缓存不使能
        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;//12位右对齐数据保存寄存器
}

图片好像看不到,,我把代码贴出来。。

第一次提问,,希望大家多多包涵。

谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 14:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表