HC32L110的GPIO速度能到多少

[复制链接]
1466|3
 楼主| luodhui 发表于 2022-4-11 15:30 | 显示全部楼层 |阅读模式
版主你好:
       请问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);
    }
}
天意无罪 发表于 2022-4-11 19:02 | 显示全部楼层

HC32L110的GPIO速度能到多少

IO的最快翻转速率和时钟主频,以及MCU内部设计有关系,最好看下数据手册。
ughbss 发表于 2022-4-12 10:37 | 显示全部楼层
应该直接操作寄存器测试
567 发表于 2022-4-13 00:55 | 显示全部楼层
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;                           
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

11

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部