21ic问答首页 - HC32L110的GPIO速度能到多少
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);
}
}
请问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);
}
}
赞0
也就是说,一个周期置高,一个周期置低,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;
}
评论
2022-04-13
赞0
评论
2022-04-12
赞0
评论
2022-04-11
您需要登录后才可以回复 登录 | 注册