初始化后,每次写入2900的数据,示波器测量输出为0,代码如下: DAC_InitTypeDef dactype; GPIO_InitTypeDef gpioinit; /* GPIOA clock enable */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); /* Configure PA.04 (DAC_OUT1) as analog */ gpioinit.GPIO_Pin = GPIO_Pin_4; gpioinit.GPIO_Mode = GPIO_Mode_AN; gpioinit.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &gpioinit); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); dactype.DAC_Trigger = DAC_Trigger_Software; dactype.DAC_OutputBuffer = DAC_OutputBuffer_Disable; dactype.DAC_WaveGeneration = DAC_WaveGeneration_None; dactype.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0; DAC_Init(DAC_Channel_1, &dactype); DAC_Cmd(DAC_Channel_1, ENABLE); 上面是初始化dac部分, DAC_SetChannel1Data(DAC_Align_12b_R, 2900); DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE); 上面是写入部分 请问各位大神,代码有什么问题没有呢? |
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
少了DAC触发源:
DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;
当然还要对对应的定时器进行配置。
评分
查看全部评分
“dactype.DAC_Trigger = DAC_Trigger_Software;”
有,他用的是软件触发源。
初始化后,每次写入2900的数据,示波器测量输出为0
1、换个口子试试,很有可能DAC被静电击穿,导致不能输出这个有案例的;
2、输出0,看电路是否对地短路。
3、初始化大程度是对dactype 结构的了解。看看相关配置参数;多半是这里的问题;
评分
查看全部评分
评分
查看全部评分
看看 VDDA 和 VSSA 的电压是否正常。
再上个STM32F05X系列的参考代码:
åè代ç
请把扩展名改为.7z再解压。
DACè¾åºé ç½®
评分
查看全部评分
刚看了STM32F0的固件库,DAC样例非常简单。只不过触发方式为 DAC_Trigger_None,初始化完成后,随时刷DAC_SetChannel1Data(DAC_Align_12b_R, ADCVal);,DAC立即输出。
总之,先跑个样例程序,排除管脚或其它硬件故障,然后再自己发挥。
评分
查看全部评分
DAC_SetChannel1Data(DAC_Align_12b_R,修改了看看对比下);DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分