文章目录[隐藏]
资料下载
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);
}
版权声明:本文为CSDN博主「dancebit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ai5945fei/article/details/121075427
暂无评论