在线时间1 小时
UID96772
ST金币0
蝴蝶豆0
注册时间2007-11-28
初级会员
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
STM8L151K4 内部16M时钟,PB4做为DA输出, PB6做为初始化成功指示。
PB4如果用做普通IO控制LED闪烁也是OK的。作为DA就没输出。
研究了很久,就是不知道哪里错了,恳请高手指点。谢谢
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include "stm8l15x.h"
#include "stm8l15x_gpio.h"
#include "stm8l15x_i2c.h"
#include "stm8l15x_dac.h"
#include "stm8l15x_clk.h"
#include "stm8l15x_syscfg.h"
#define POWER_LED_ON (GPIO_SetBits(GPIOB,GPIO_Pin_6)) //设置电源指示灯
void GPIO_CONF(void) //IO口初始化
{
GPIO_Init(GPIOB,GPIO_Pin_6,GPIO_Mode_Out_PP_High_Fast);//PB6 LED ON
//GPIO_Init(GPIOB,GPIO_Pin_4,GPIO_Mode_In_FL_IT);
}
void CLK_CONF(void) //系统频率初始化
{
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);//系统时钟分频
CLK_PeripheralClockConfig(CLK_Peripheral_DAC, ENABLE);//打开DAC时钟
}
void DAC_CONF(void) //初始化DAC
{
DAC_DeInit();//DAC初始化到默认值
DAC_Init( DAC_Channel_1, //DAC通道1
DAC_Trigger_Software, //DAC 触发
DAC_OutputBuffer_Disable);//DAC输出缓冲
DAC_WaveGenerationCmd(DAC_Channel_1,DAC_Wave_Triangle,DISABLE);//不使用三角波
IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(DAC_LFSRUnmask_Bits11_0); //DAC位数
DAC_DMACmd(DAC_Channel_1, DISABLE);//DAC DMA 关闭
DAC_Cmd(DAC_Channel_1, ENABLE);//DAC1通道打开
DAC_SetChannel1Data(DAC_Align_12b_R, 0X7FF);//刷新数据
DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);//DAC软件 触发
}
main()
{
CLK_CONF();
GPIO_CONF();
DAC_CONF();
POWER_LED_ON;//开电源指示灯
while (1)
{
};
} |
|