led.c

来自「ARM_CORTEX-M3应用实例开发详解光盘」· C语言 代码 · 共 54 行

C
54
字号
/******************************* (C) Embest ***********************************
* File Name          : led.c
* Author             : tary
* Date               : 2009-05-27
* Version            : 0.2u
* Description        : 
******************************************************************************/
#include <assert.h>
#include "aux_lib.h"
#include "led.h"
#include "gpio.h"

static int LedPins[] = {GPIO_Pin_6, GPIO_Pin_7, GPIO_Pin_8, GPIO_Pin_9};
int led_init(void) {
	/* Configure the LED IOs as Output PP */
	int i;
	int pins = 0;
	for (i=0; i<countof(LedPins); i++)
		pins |= LedPins[i];
	
	gpio_init(LED_PORT,
	  pins, GPIO_Speed_50MHz, GPIO_Mode_Out_PP,
	  RCC_APB2Periph_LED
	);
	return 0;
}

int get_led_state(int idx) {
	assert(idx > 0 && idx < countof(LedPins));

	return Bit_SET == GPIO_ReadInputDataBit(LED_PORT, LedPins[idx-1]);
}


int set_led_state(int idx, int state) {
	assert(idx > 0 && idx < countof(LedPins));

	GPIO_WriteBit(LED_PORT, LedPins[idx-1], (BitAction)(state));
	return Bit_SET == GPIO_ReadInputDataBit(LED_PORT, LedPins[idx-1]);
}

// 第二版电平改为相反值
void led_off(int idx) {
	assert(idx > 0 && idx < countof(LedPins));
	GPIO_WriteBit(LED_PORT, LedPins[idx-1], Bit_RESET);
}
void led_on(int idx) {
	assert(idx > 0 && idx < countof(LedPins));

	GPIO_WriteBit(LED_PORT, LedPins[idx-1], Bit_SET);
}

/************************************END OF FILE******************************/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?