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 + -
显示快捷键?