|

楼主 |
发表于 2025-6-19 20:53:16
|
显示全部楼层
#include "gd32f30x.h"
void rcu_config(void);
void gpio_config(void);
void dac_config(void);
void timer5_config(void);
int main(void)
{
rcu_config();
gpio_config();
dac_config();
timer5_config();
while(1) {
}
}
void rcu_config(void)
{
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_DAC);
rcu_periph_clock_enable(RCU_TIMER5);
}
void gpio_config(void)
{
gpio_init(GPIOA, GPIO_MODE_AIN, GPIO_OSPEED_50MHZ, GPIO_PIN_5);
}
void dac_config(void)
{
dac_deinit(DAC0);
dac_trigger_source_config(DAC0, DAC_OUT1, DAC_TRIGGER_T5_TRGO);
dac_trigger_enable(DAC0, DAC_OUT1);
dac_wave_mode_config(DAC0, DAC_OUT1, DAC_WAVE_MODE_TRIANGLE);
dac_triangle_noise_config(DAC0, DAC_OUT1, DAC_TRIANGLE_AMPLITUDE_2047);
dac_enable(DAC0, DAC_OUT1);
dac_data_set(DAC0, DAC_OUT1, DAC_ALIGN_12B_R, 0x7F0);
}
void timer5_config(void)
{
timer_parameter_struct timer_initpara;
timer_deinit(TIMER5);
/* TIMER configuration */
timer_struct_para_init(&timer_initpara);
timer_initpara.prescaler = 119;
timer_initpara.alignedmode = TIMER_COUNTER_EDGE;
timer_initpara.counterdirection = TIMER_COUNTER_UP;
timer_initpara.period = 999;
timer_initpara.clockdivision = TIMER_CKDIV_DIV1;
timer_initpara.repetitioncounter = 0;
timer_init(TIMER5, &timer_initpara);
timer_master_output_trigger_source_select(TIMER5, TIMER_TRI_OUT_SRC_UPDATE);
timer_enable(TIMER5);
}这个是官方的三角波示例,但是我烧录后示波器没有波形(一条线在示波器上上下快速移动),这是为什么,其他示波器可以观测吗 |
|