在神舟开发板的流水灯例程中有个Turn_On_LED函数用以点亮指定LED灯。函数实现: void Turn_On_LED(u8 LED_NUM) { switch(LED_NUM) { case 0: GPIO_ResetBits(GPIO_LED,DS1_PIN); /*点亮DS1灯*/ break; case 1: GPIO_ResetBits(GPIO_LED,DS2_PIN); /*点亮DS2灯*/ break; case 2: GPIO_ResetBits(GPIO_LED,DS3_PIN); /*点亮DS3灯*/ break; case 3: GPIO_ResetBits(GPIO_LED,DS4_PIN); /*点亮DS4灯*/ break; default: GPIO_ResetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN); /*点亮所有的灯*/ break; } } 这么多,感觉很不舒服,试着写了另一个方法: GPIO_ResetBits(GPIO_LED, DS1_PIN |
RE:Turn_On_LED函数的执行效率
#define GPIO_LED GPIOB->BSRR(BRR)=GPIO_Pin_6
然后对管脚操作。但是这样只能定义高和低,你这样写
GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
只能是拉低某个引脚,初始化DS4_PIN=0x0001。
这样操作是在灯全灭的时候,依次点亮。但是点亮以后,就不能再依次点亮了。因为他们全部是亮的,所以你的操作是看不到效果的。
RE:Turn_On_LED函数的执行效率
void Turn_On_LED(u8 LED_NUM)
{
GPIO_ResetBits(GPIO_LED, DS1_PIN