问答

汇集网友智慧,解决技术难题

21ic问答首页 - HC32L110的GPIO速度能到多少

GPIO hc32l110 速度 se 时钟 TI

HC32L110的GPIO速度能到多少

luodhui2022-04-11
版主你好:
       请问HC32L110的GPIO速度能到多少?我用24M时钟,翻转周期将近7微秒(高电平3.4微秒,低电平3.5微秒),正常吗?有办法提高吗?
一下是我的测试程序。谢谢!

int32_t main(void)
{
    Clk_SwitchTo(ClkRCH);                                                        //使用内部高速时钟
    Clk_SetRCHFreq(ClkFreq24Mhz);                        //24M               
    Clk_SetPeripheralGate(ClkPeripheralGpio, TRUE);                //打开GPIO外设时钟
//
                Gpio_SetFunc_HCLKOUT_P24();        //P24配置为HCLK输出               
    Gpio_InitIOExt(0, 3, GpioDirOut, TRUE, FALSE, FALSE, FALSE);//初始化外部GPIO P03为输出、上拉、推挽输出,
//   
    while (1)
    {
        Gpio_SetIO(0, 3, TRUE);         //设置GPIO值(翻转)
        Gpio_SetIO(0, 3, FALSE);
    }
}
回答 +关注 14
1097人浏览 3人回答问题 分享 举报
3 个回答
  • M0+内核,支持FASTIO,GPIO是单周期翻转的。
    也就是说,一个周期置高,一个周期置低,24MHz时钟下,最快可输出12MHz方波。
    你用库函数测试,里面有很多复杂操作,当然速度不快。
    可以直接写相关寄存器,例如这样:
    while(1)
    {
      M0P_GPIO->PDOUT = 0x00;
      M0P_GPIO->PDOUT = 0xff;
      M0P_GPIO->PDOUT = 0x00;
      M0P_GPIO->PDOUT = 0xff;
      M0P_GPIO->PDOUT = 0x00;
      M0P_GPIO->PDOUT = 0xff;
      M0P_GPIO->PDOUT = 0x00;
      M0P_GPIO->PDOUT = 0xff;                           
    }
  • 应该直接操作寄存器测试
  • IO的最快翻转速率和时钟主频,以及MCU内部设计有关系,最好看下数据手册。

您需要登录后才可以回复 登录 | 注册