wk_timebase_init();wk_tmr1_init();while(1){ } } at32f403a_407_wk_config.c 复制 #...
void tmr_base_init(tmr_type* tmr_x, uint32_t tmr_pr, uint32_t tmr_div); 其中,第一个参数是确定是哪个定时器,这个比较容易理解。第二个参数tmr_pr是定时器计数的周期值。第二个参数tmr_div是定时器的分频系数。 void tmr_cnt_dir_set(tmr_type *tmr_x, tmr_count_mode_type tmr_cnt_dir); ...
tmr_base_init(TMR1, 9999, (crm_clocks_freq_struct.ahb_freq / 10000) - 1);/*配置定时器为...
dma_init(DMA1_CHANNEL1,&dma_init_struct);dma_channel_enable(DMA1_CHANNEL1,TRUE);注意:使用CPU读取普通转换数据时,为避免数据读取不及时,通道采样周期需要足够大。ADC配置解析以下对ADC的配置流程及数据获取方法进行说明。ADC配置流程ADC的配置一般包括如下内容外部触发源配置ADC外部触发源有TMR、EXINT或软件触发...
crm_periph_clock_enable(CRM_TMR2_PERIPH_CLOCK, TRUE); 2) 初始化定时器参数,设置自动重装值,分频系数,计数方式等。 在库函数中,定时器的初始化参数是通过初始化函数tmr_base_init()及tmr_cnt_dir_set()实现的: void tmr_base_init(tmr_type* tmr_x, uint32_t tmr_pr, uint32_t tmr_div); 其中...
tmr_base_init(TMR2, 19999, (19200) - 1); // 设置计数方式(这里没有区别) tmr_cnt_dir_set(TMR2, TMR_COUNT_UP); ``` ## 预分频的概念 系统主频为192Mhz,也就是192000000hz,也就是说每次经过1/192000000秒定时器会把cnt+1,但是16位定时器最大cnt只能到65535,很快就满了。
tmr_base_init(TMR2, 4799, 7); // 5Khz // 向上计数模式 tmr_cnt_dir_set(TMR2,TMR_COUNT_UP); // 输出通道配置结构体 tmr_output_config_type tmr_output_struct; // 设置默认参数 tmr_output_default_para_init(&tmr_output_struct);
tmr_base_init(TMR1, 9999, (crm_clocks_freq_struct.ahb_freq / 10000) - 1);/*配置定时器为...
图2. 程序流程总框图启动时的自检必须在应用启动之前执行,调用函数selftest_startup_check(),在进入主循环前先调用函数selftest_runtime_init()做周期自检初始化配置,然后函数selftest_runtime_check()进行周期自检。例程中周期性自检时基是采用1ms的systick中断,根据变量time_base_flag判断是否进行检测,检测时间...
crm_periph_clock_enable(CRM_TMR8_PERIPH_CLOCK, TRUE); tmr_base_init(TMR8, 9999, 13999); tmr_cnt_dir_set(TMR8, TMR_COUNT_UP); nvic_priority_group_config(NVIC_PRIORITY_GROUP_4); nvic_irq_enable(TMR8_OVF_TMR13_IRQn, 1, 0); tmr_interrupt_enable(TMR8, TMR_OVF_INT, TRUE); tmr_...