本帖最后由 TuBie 于 2011-1-3 17:07 编辑
用STM32F103RET6,编译器是keil,写了一个宏定义和一个函数,实现同样的功能,即在PA.0上发一个脉冲,定义分别为:
宏定义:
#define PULSE1(){GPIOA->BSRR=0x01;GPIOA->BRR=0x01;}
函数定义:
void debug_pulse(void)
{
GPIOA->BSRR=0x01;
GPIOA->BRR=0x01;
}
结果执行
while(1)
{
PULSE1();
}
其周期为210ns。
而执行
while(1)
{
debug_pulse();
}
其周期为93ns。
以上测试是用示波器直接看PA.0引脚得到的,不理解为什么函数执行的比宏还要快。 |