本帖最后由 tottionly 于 2020-2-11 16:48 编辑
int main(void)
{
static uint32_t u32temp1 = 0;
static uint32_t u32temp2 = 0;
Sys_Clk_Init();
u32temp1= Sysctrl_GetHClkFreq();
u32temp2= Sysctrl_GetPClkFreq();
Led_PortInit();
while(1)
{
setBit(((uint32_t)&M0P_GPIO->PABSET + GpioPortD), GpioPin5, TRUE);
setBit(((uint32_t)&M0P_GPIO->PABCLR + GpioPortD), GpioPin5, TRUE);
}
}
static void Led_PortInit(void)
{
stc_gpio_config_t pstcGpioCfg;
///< 打开GPIO外设时钟门控
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
///< 端口方向配置->输出
pstcGpioCfg.enDir = GpioDirOut;
///< 端口驱动能力配置->高驱动能力
pstcGpioCfg.enDrv = GpioDrvH;
///< 端口上下拉配置->无上下拉
pstcGpioCfg.enPuPd = GpioNoPuPd;
///< 端口开漏输出配置->开漏输出关闭
pstcGpioCfg.enOD = GpioOdDisable;
///< 端口输入/输出值寄存器总线控制模式配置->AHB
pstcGpioCfg.enCtrlMode = GpioAHB;
///< GPIO IO PD05初始化(PD05在STK上外接LED)
Gpio_Init(GpioPortD, GpioPin5, &pstcGpioCfg);
}
HCLK已经设置为48MHz,通过Sysctrl_GetHClkFreq()函数可读取。
简单测试IO翻转的最高频率,测下来翻转频率是1.5MHz. 理论上不应该这么慢,是哪里设置有问题吗?
感谢解答。 |