本帖最后由 zeshoufx 于 2019-7-10 10:54 编辑
一、时钟输出函数
- #include "clkout.h"
- void clkout_init(u8 clk)
- {
- rcu_periph_clock_enable(RCU_GPIOA);
- gpio_init(GPIOA,GPIO_MODE_AF_PP,GPIO_OSPEED_MAX,GPIO_PIN_8);
-
- if(0==clk)
- {
- rcu_ckout0_config(RCU_CKOUT0SRC_IRC8M);
- }
- else if(1==clk)
- {
- rcu_ckout0_config(RCU_CKOUT0SRC_HXTAL);
- }
- else if(2==clk)
- {
- rcu_ckout0_config(RCU_CKOUT0SRC_CKPLL_DIV2);
- }
- else
- {
- rcu_ckout0_config(RCU_CKOUT0SRC_CKSYS);
- }
- }
主函数,输出系统时钟
- #include "bitband.h"
- #include "sysdelay.h"
- #include "usart.h"
- #include "led.h"
- #include "key.h"
- #include "clkout.h"
- int main(void)
- {
- u8 i;
-
- sysdelay_init(120);
- nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
- usart0_init(56000);
- led_init();
- clkout_init(3);
- while(1)
- {
-
-
- i++;
- if(i%20==0)
- {
- led1=!led1;
- }
- delay_ms(25);
- }
-
- }
二、结果
三、结论
结论:利用示波器观察,当输出频率设置为系统频率(120MHz)时,并且io输出速度设置为最大时,示波器发现时钟输出也为120MHz,即IO口的最大速度和系统时钟速度匹配。并且发现IO口输出频率极其稳定。因此在设计开发中,将io输出速率设置为最大,可得到较高的性能,但也可能造成功耗的增加;相比较STM32F407及AT32F407等IO输出频率,,,GD32F303的最大输出频率比前两者要高。
|