本帖最后由 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. 理论上不应该这么慢,是哪里设置有问题吗?
感谢解答。 |
|