资料下载
1、指令执行时间测试
在CPU为160Mhz下测试
SystemClock_Config(CPU_CLK_160M);
1.1、GPIO翻转测试
while (1)
{
GPIOB->DATA &= ~GPIO_PIN_0;
GPIOB->DATA |= GPIO_PIN_0;
GPIOB->DATA &= ~GPIO_PIN_0;
GPIOB->DATA |= GPIO_PIN_0;
HAL_Delay(100);
}
翻转IO用时176ns
1.2、for循环延时测试
while (1)
{
GPIOB->DATA &= ~GPIO_PIN_0;
for(int i=0;i<10000;i++);
GPIOB->DATA |= GPIO_PIN_0;
HAL_Delay(100);
}
执行for空循序10000次,耗时188us,单次耗时18.8ns。
系统时钟为160Mhz ,时钟周期为6.25ns ,算下来单个for循环需要3个时钟周期。
1.3、库函数GPIO翻转
while (1)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_Delay(100);
}