打印

有人用过stm32DAC的软件触发吗?

[复制链接]
6321|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
307610084|  楼主 | 2011-7-28 12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个怎么都设置不对,哪位大哥能详细讲一下软件触发怎么设置啊?
沙发
wangzhihai1986| | 2011-7-28 12:06 | 只看该作者
void ADC_Configuration(void)
{
        ADC_InitTypeDef ADC_InitStructure;

        ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
        ADC_InitStructure.ADC_ScanConvMode = ENABLE;
        ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
        ADC_InitStructure.ADC_NbrOfChannel = 1;
        ADC_Init(ADC1, &ADC_InitStructure);        //配置ADC1为独立通道,且转换一路工ADC。

        ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 1, ADC_SampleTime_7Cycles5); //配置通道9为规则通道中第一个要转换的,时间为1.5个ADC周期。

        ADC_Cmd(ADC1, ENABLE);        //开启ADC1.

        ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_9);//第九通道用模拟看门狗。
        ADC_AnalogWatchdogThresholdsConfig(ADC1, 0xe00, 0x100);//设定模拟看门狗高低门槛。
        ADC_AnalogWatchdogCmd(ADC1, ADC_AnalogWatchdog_SingleRegEnable);//允许单通道加上模拟看门狗。

        ADC_ITConfig(ADC1, ADC_IT_AWD, ENABLE);//允许模拟看门狗产生中断。
}

ADC_SoftwareStartConvCmd(ADC1, ENABLE);         //软件开启转换。

以上代码可以参考下。

使用特权

评论回复
板凳
307610084|  楼主 | 2011-7-28 12:33 | 只看该作者
2# wangzhihai1986
谢谢你的回答,不过你可能看错了,我说的是DA……

使用特权

评论回复
地板
wangzhihai1986| | 2011-7-29 13:51 | 只看该作者
呵呵,不好意思,DAC和这差不多,我也搞过,你现在应该搞好了吧,如果没有等下周有时间我可以回答下

使用特权

评论回复
5
yzzly| | 2011-7-30 14:33 | 只看该作者
本帖最后由 yzzly 于 2011-7-30 14:35 编辑

#define        DAC1_CR_DMAEN                                0                                        //0:关闭DAC通道1 DMA模式;1:使能DAC通道1 DMA模式
#define        DAC1_CR_MAMP                                0                                        //DAC通道1屏蔽/幅值选择器
#define        DAC1_CR_WAVE                                0                                        //0:关闭波形生成;1:使能噪声发生器;2:使能三角波发生器
#define        DAC1_CR_TSEL                                7                                        //DAC1触发选择.0--T6 TRGO,1--,2--T7 TRGO,3--T5 TRGO,
                                                                                                                //                           4--T2 TRGO,5--T4 TRGO,6--EXITL9,7--软件
#define        DAC1_CR_TEN                                        0                                        //0:关闭DAC触发,写入的数据在1个APB1时钟后开始转换
                                                                                                                //1:使能DAC触发,写入的数据在3个APB1时钟周开始转换
                                                                                                                //如果选择软件触发,写入的数据在1个APB1时钟后开始转换
#define        DAC1_CR_BOFF                                0                                        //0:使能DAC输出缓冲;1:禁止DAC输出缓冲
#define        DAC1_CR_EN                                        1                                        //使能DAC
#define        DAC1_SWR_SWT                                1                                        //0:关闭DAC软件触发;1:使能DAC软件触发
void DAC_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);                        //使能端口A时钟
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);                                                        //推挽输出
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);                                //使能DAC时钟
        DAC->CR |= DAC1_CR_DMAEN << 12;
        DAC->CR |= DAC1_CR_MAMP << 8;
        DAC->CR |= DAC1_CR_WAVE << 6;
        DAC->CR |= DAC1_CR_TSEL << 3;
        DAC->CR |= DAC1_CR_TEN << 2;
        DAC->CR |= DAC1_CR_BOFF << 1;
        DAC->CR |= DAC1_CR_EN << 0;
}
DAC->DHR12R1 = DAC1_Out_Range*4095/DAC1_Vref;                                   //所谓软件触发就是向数据寄存器写数据就立即转换

使用特权

评论回复
6
sixgett| | 2012-5-9 11:14 | 只看该作者
5楼说的有点意思了,顶!

使用特权

评论回复
7
sixgett| | 2012-5-9 11:14 | 只看该作者
很好啊,说的

使用特权

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

本版积分规则

5

主题

32

帖子

0

粉丝