探索者407,运行跑马灯实验,用三种不同方式去操作IO口,看执行时间(在MDK中将Debug-》Setting-》Trace-》Core设为168Mhz):
1,位带操作方式
LED0=0; //LED0亮(此句设置一个断点)
LED1=1; //LED1灭
delay_ms(300);(此处再设置一个断点)
运行时间:70ns
2,直接操作寄存器
GPIOF->BSRRH=GPIO_Pin_9;//LED0亮(此句设置一个断点)
GPIOF->BSRRL=GPIO_Pin_10;//LED1灭
delay_ms(500);(此处再设置一个断点)
运行时间:40ns
3,直接操作库函数
GPIO_ResetBits(GPIOF,GPIO_Pin_9); //(此句设置一个断点)
GPIO_SetBits(GPIOF,GPIO_Pin_10); //
delay_ms(300);(此处再设置一个断点)
运行时间:100ns
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>