GD32F103延时不准,串口打印乱码 使用官方例程时发现delay_1ms()这个函数的延时很不准确,并且官方例程的串口打印是乱码的。 在网上查找资料,最终成功解决问题,步骤如下: 首先确定自己板子用的是外部晶振还是内部晶振,频率是多少,我使用的是外部晶振,4MHz,确定了这个之后找到system_gd32f10x.c这个文件 将__SYS_OSC_...
gd32vf103的systick是一个64位的定时器,可以实现系统计时、比较中断、软件中断等功能。它上电后自动开始自增计数,所以我们不需要做什么配置就可以获取到系统运行的时间。 本文介绍如何使用systick实现毫秒的延时函数delay_1ms(int millis)。 参考bumblebee内核数据手册,可以找到systick的介绍,手册中它叫计时器单元(TIM...
当前nop不准 ...可以用示波器量一下时间17volatile static uint32_t delay_count;void system_config(...
adc_enable(ADC0); delay_1ms(1);//延迟 等待稳定 /* ADC calibration and reset calibration */ adc_calibration_enable(ADC0);//使能 ADC 校准 (3)读取 ADC 值 在上面的步骤完成后, ADC 就算准备好了。所谓的查询法就是不断地进行通道切换 unsigned short adc0_transfer(unsigned char adc_channel) { ...
voiddelay_1ms(uint32_t count) { delay = count; while(0U!= delay){ } } intmain(void) { gd_eval_led_init(LED1); gd_eval_led_init(LED2); gd_eval_led_init(LED3); systick_config(); while(1){ /* turn on LED1 */
delay_1ms(1000); . . . 在这段代码中,我们可以看到第一步,初始化连接到LED的4个GPIO引脚,然后在无限的while循环中打开和关闭,并在每次切换两个LED时插入1秒的延迟。全功能开发板包含四个LED,这就是为什么所提供的代码示例大于在此处使用的更基本的最小系统板上切换LED所需的代码示例的原因。
/* enable ADC interface */adc_enable(ADC0);delay_1ms(1);//延迟 等待稳定/* ADC calibration and reset calibration */adc_calibration_enable(ADC0);//使能 ADC 校准 (3)读取 ADC 值 在上面的步骤完成后, ADC 就算准备好了。所谓的查询法就是不断地进行通道切换 unsigned short adc0_transfer(...
PUBLIC __delay_loops_0 SECTION `.text`:CODE:NOROOT(4)THUMB __delay_loops:SUBS R0,R0,...
delay_1ms(40); if (SET == breathe_flag){ i = i + 10; }else{ i = i - 10; } if(500 < i){ breathe_flag = RESET; } if(0 >= i){ breathe_flag = SET; } /* configure TIMER channel output pulse value */ timer_channel_output_pulse_value_config(TIMER0,TIMER_CH_0,i); ...
/* enable ADC interface */ adc_enable(ADC0); delay_1ms(1);//延迟 等待稳定 /* ADC calibration and reset calibration */ adc_calibration_enable(ADC0);//使能 ADC 校准 (3)读取 ADC 值 在上面的步骤完成后, ADC 就算准备好了。所谓的查询法就是不断地进行通道切换 ...