/****************************************************************************
|
* Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com
|
* Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
|
* Description: STM32L151C8T6 CubeMX ¿ª·¢°å LED²Ù×÷º¯Êý
|
*
|
* ChangeLog:
|
* °æ±¾ºÅ ÈÕÆÚ ×÷Õß ËµÃ÷
|
* V1.0.0 2018.11.05 GuoWenxue ·¢²¼¸Ã°æ±¾
|
****************************************************************************/
|
|
#include "stm32l1xx.h"
|
#include "stm32_led.h"
|
|
/* STM32L151C8T6 CubeMX ¿ª·¢°åÖ»ÓÐÒ»¸öGPIO¿ØÖÆµÄ Green LED£¬ ºìÉ«µÄLEDÊǵçԴָʾµÆ */
|
led_gpio_t leds_gpio[MAX_LED] =
|
{
|
{LED1, GPIOB, GPIO_Pin_1}, /* LED_Green ÓõÄGPB1 */
|
};
|
|
/* º¯Êý˵Ã÷: ÅäÖà LED GPIO¿ÚºÍʱÖÓ£»
|
* ²ÎÊý˵Ã÷: ÎÞ
|
* ·µ»ØÖµ: ÎÞ
|
*/
|
void init_led_gpio(void)
|
{
|
int i;
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|
/* ʹÄÜPB×é GPIOµÄʱÖÓ */
|
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
|
|
/*ÉèÖÃ PB1(LED1) */
|
for(i=0; i<MAX_LED; i++)
|
{
|
GPIO_InitStructure.GPIO_Pin = leds_gpio[i].pin;
|
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
|
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
|
GPIO_Init(leds_gpio[i].group, &GPIO_InitStructure);
|
}
|
}
|
|
|
/* º¯Êý˵Ã÷: µãÁÁ»òÃðµôÏàÓ¦LED
|
* ²ÎÊý˵Ã÷: which: Òª²Ù×÷ÄĸöLED,ÆäÖµÓ¦¸ÃΪ LED1¡¢LED2 »ò LED3£
|
* cmd: ÒªÁÁ»¹ÊÇÃð, ÆäÖµ¶ÔӦΪ ON »ò OFF
|
* ·µ»ØÖµ: ÎÞ
|
*/
|
void turn_led(int which, int cmd)
|
{
|
if(which<0 || which> MAX_LED )
|
return;
|
|
if(OFF == cmd)
|
GPIO_SetBits(leds_gpio[which].group, leds_gpio[which].pin);
|
else
|
GPIO_ResetBits(leds_gpio[which].group, leds_gpio[which].pin);
|
}
|