打印

GD32F103VET6移植STM的API,引脚操作比GD的API慢

[复制链接]
1203|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
BHFCHARGE|  楼主 | 2022-3-15 13:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按要求修改了flash启动时间,时钟频率为72MHZ,分频方式也是按照GD库的分频强制分的72MHZ,但就是GUI刷屏显示明显慢,但使用GD的API则正常。对比过RCC配置寄存器及引脚配置寄存器,配置的内容是一样的

使用特权

评论回复

相关帖子

沙发
BHFCHARGE|  楼主 | 2022-3-15 13:11 | 只看该作者

GD32F103VET6移植STM的API,引脚操作比GD的API慢

void RCC_Config(void)
{   
        ErrorStatus HSEStartUpStatus;
        /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
        /* RCC system reset(for debug purpose) */
        RCC_DeInit();
       
        /* Enable HSE */
        RCC_HSEConfig(RCC_HSE_ON);
       
        /* Wait till HSE is ready */
        HSEStartUpStatus = RCC_WaitForHSEStartUp();
       
        if(HSEStartUpStatus == SUCCESS)
        {
                /* Enable Prefetch Buffer */
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
               
                /* Flash 2 wait state */
                FLASH_SetLatency(FLASH_Latency_2);
               
                /* HCLK = SYSCLK */
                RCC_HCLKConfig(RCC_SYSCLK_Div1);
               
                /* PCLK2 = HCLK */
                RCC_PCLK2Config(RCC_HCLK_Div1);
               
                /* PCLK1 = HCLK/4 */
                RCC_PCLK1Config(RCC_HCLK_Div2);
               
                /* PLLCLK = 8MHz * 9 = 72 MHz */
                RCC_PLLConfig(RCC_PLLSource_HSE_Div2, RCC_PLLMul_9);
               
                /* Enable PLL */
                RCC_PLLCmd(ENABLE);
               
                /* Wait till PLL is ready */
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
                {
                }
                /* Select PLL as system clock source */
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
               
                /* Wait till PLL is used as system clock source */
                while(RCC_GetSYSCLKSource() != 0x08)
                {
                }
        }
}

void RCC_PLLConfig(u32 RCC_PLLSource, u32 RCC_PLLMul)
{
  u32 tmpreg = 0;

  /* Check the parameters */
  assert_param(IS_RCC_PLL_SOURCE(RCC_PLLSource));
  assert_param(IS_RCC_PLL_MUL(RCC_PLLMul));

  tmpreg = RCC->CFGR;

  /* Clear PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */
  tmpreg &= CFGR_PLL_Mask;

  /* Set the PLL configuration bits */
  tmpreg |= RCC_PLLSource |  0X08070000;//RCC_PLLMul;// 0X08070000;//;

  /* Store the new value */
  RCC->CFGR = tmpreg;
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝