⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsp.c

📁 ucos2.86版本结合STM板极支持包
💻 C
📖 第 1 页 / 共 3 页
字号:
             break;

        case 2:
             GPIO_ResetBits(GPIOA, GPIOA_LED2);
             break;

        case 3:
             GPIO_ResetBits(GPIOA, GPIOA_LED3);
             break;

        case 4:
             GPIO_ResetBits(GPIOA, GPIOA_LED4);
             break;

        case 5:
             GPIO_ResetBits(GPIOA, GPIOA_LED5);
             break;

        case 6:
             GPIO_ResetBits(GPIOA, GPIOA_LED6);
             break;

        case 7:
             GPIO_ResetBits(GPIOB, GPIOB_LED7);
             break;

        case 8:
             GPIO_ResetBits(GPIOB, GPIOB_LED8);
             break;

        case 9:
             GPIO_ResetBits(GPIOB, GPIOB_LED9);
             break;

        case 10:
             GPIO_ResetBits(GPIOB, GPIOB_LED10);
             break;

        case 11:
             GPIO_ResetBits(GPIOB, GPIOB_LED11);
             break;

        case 12:
             GPIO_ResetBits(GPIOB, GPIOB_LED12);
             break;

        case 13:
             GPIO_ResetBits(GPIOB, GPIOB_LED13);
             break;

        case 14:
             GPIO_ResetBits(GPIOB, GPIOB_LED14);
             break;

        case 15:
             GPIO_ResetBits(GPIOC, GPIOC_LED15);
             break;

        case 16:
             GPIO_ResetBits(GPIOC, GPIOC_LED16);
             break;

        default:
             break;
    }
}


/*
*********************************************************************************************************
*                                             LED OFF
*
* Description : This function is used to control any or all the LEDs on the board.
*
* Arguments   : led    is the number of the LED to turn OFF
*                      0    indicates that you want ALL the LEDs to be OFF
*                      1    turns OFF user LED1  on the board
*                      2    turns OFF user LED2  on the board
*                            .
*                            .
*                            .
*                      16   turns OFF user LED16 on the board
*
* Returns     ; none
*********************************************************************************************************
*/

void  LED_Off (CPU_INT08U led)
{
    switch (led) {
        case 0:
             GPIO_SetBits(GPIOA, GPIOA_LEDS);
             GPIO_SetBits(GPIOB, GPIOB_LEDS);
             GPIO_SetBits(GPIOC, GPIOC_LEDS);
             break;

        case 1:
             GPIO_SetBits(GPIOA, GPIOA_LED1);
             break;

        case 2:
             GPIO_SetBits(GPIOA, GPIOA_LED2);
             break;

        case 3:
             GPIO_SetBits(GPIOA, GPIOA_LED3);
             break;

        case 4:
             GPIO_SetBits(GPIOA, GPIOA_LED4);
             break;

        case 5:
             GPIO_SetBits(GPIOA, GPIOA_LED5);
             break;

        case 6:
             GPIO_SetBits(GPIOA, GPIOA_LED6);
             break;

        case 7:
             GPIO_SetBits(GPIOB, GPIOB_LED7);
             break;

        case 8:
             GPIO_SetBits(GPIOB, GPIOB_LED8);
             break;

        case 9:
             GPIO_SetBits(GPIOB, GPIOB_LED9);
             break;

        case 10:
             GPIO_SetBits(GPIOB, GPIOB_LED10);
             break;

        case 11:
             GPIO_SetBits(GPIOB, GPIOB_LED11);
             break;

        case 12:
             GPIO_SetBits(GPIOB, GPIOB_LED12);
             break;

        case 13:
             GPIO_SetBits(GPIOB, GPIOB_LED13);
             break;

        case 14:
             GPIO_SetBits(GPIOB, GPIOB_LED14);
             break;

        case 15:
             GPIO_SetBits(GPIOC, GPIOC_LED15);
             break;

        case 16:
             GPIO_SetBits(GPIOC, GPIOC_LED16);
             break;

        default:
             break;
    }}


/*
*********************************************************************************************************
*                                             LED TOGGLE
*
* Description : This function is used to toggle any or all the LEDs on the board.
*
* Arguments   : led    is the number of the LED to control
*                      0    indicates that you want to toggle ALL the LEDs
*                      1    toggles user LED on the board
*
* Returns     ; none
*********************************************************************************************************
*/

void  LED_Toggle (CPU_INT08U led)
{
    CPU_INT32U  pins;


    switch (led) {
        case 0:
             pins =  GPIO_ReadOutputData(GPIOA);
             pins ^= GPIOA_LEDS;
             GPIO_SetBits(  GPIOA,   pins  & GPIOA_LEDS);
             GPIO_ResetBits(GPIOA, (~pins) & GPIOA_LEDS);

             pins =  GPIO_ReadOutputData(GPIOB);
             pins ^= GPIOB_LEDS;
             GPIO_SetBits(  GPIOB,   pins  & GPIOB_LEDS);
             GPIO_ResetBits(GPIOB, (~pins) & GPIOB_LEDS);

             pins =  GPIO_ReadOutputData(GPIOA);
             pins ^= GPIOC_LEDS;
             GPIO_SetBits(  GPIOC,   pins  & GPIOC_LEDS);
             GPIO_ResetBits(GPIOC, (~pins) & GPIOC_LEDS);
             break;

        case 1:
        case 2:
        case 3:
        case 4:
            pins = GPIO_ReadOutputData(GPIOA);
            if ((pins & (1 << (led + 3))) == 0) {
                 GPIO_SetBits(  GPIOA, (1 << (led + 3)));
             } else {
                 GPIO_ResetBits(GPIOA, (1 << (led + 3)));
             }
            break;

        case 5:
        case 6:
            pins = GPIO_ReadOutputData(GPIOA);
            if ((pins & (1 << (led + 4))) == 0) {
                 GPIO_SetBits(  GPIOA, (1 << (led + 4)));
             } else {
                 GPIO_ResetBits(GPIOA, (1 << (led + 4)));
             }
            break;

        case 7:
        case 8:
            pins = GPIO_ReadOutputData(GPIOB);
            if ((pins & (1 << (led - 1))) == 0) {
                 GPIO_SetBits(  GPIOB, (1 << (led - 1)));
             } else {
                 GPIO_ResetBits(GPIOB, (1 << (led - 1)));
             }


        case 9:
        case 10:
        case 11:
        case 12:
        case 13:
        case 14:
             pins = GPIO_ReadOutputData(GPIOB);
             if ((pins & (1 << (led + 1))) == 0) {
                 GPIO_SetBits(  GPIOB, (1 << (led + 1)));
             } else {
                 GPIO_ResetBits(GPIOB, (1 << (led + 1)));
             }
            break;

        case 15:
        case 16:
             pins = GPIO_ReadOutputData(GPIOC);
             if ((pins & (1 << (led - 9))) == 0) {
                 GPIO_SetBits(  GPIOC, (1 << (led - 9)));
             } else {
                 GPIO_ResetBits(GPIOC, (1 << (led - 9)));
             }
            break;

        default:
             break;
    }
}


/*
*********************************************************************************************************
*                                         LCD LIGHT INITIALIZATION
*
* Description : This function initializes the LCD backlight.
*
* Arguments   : None.
*
* Returns     : None.
*********************************************************************************************************
*/

static  void  LCD_LightInit (void)
{
    GPIO_InitTypeDef  gpio_init;


    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    gpio_init.GPIO_Pin   = GPIOB_LCD_LIGHT;
    gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    gpio_init.GPIO_Mode  = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &gpio_init);
}

/*
*********************************************************************************************************
*                                             LCD LIGHT ON
*
* Description : This function is used to turn on the LCD backlight.
*
* Arguments   : None.
*
* Returns     : None.
*********************************************************************************************************
*/

void  LCD_LightOn (void)
{
    GPIO_ResetBits(GPIOB, GPIOB_LCD_LIGHT);
}


/*
*********************************************************************************************************
*                                             LCD LIGHT OFF
*
* Description : This function is used to turn off the LCD backlight.
*
* Arguments   : None.
*
* Returns     : None.
*********************************************************************************************************
*/

void  LCD_LightOff (void)
{
    GPIO_SetBits(GPIOB, GPIOB_LCD_LIGHT);
}


/*
*********************************************************************************************************
*                                          LCD LIGHT TOGGLE
*
* Description : This function is used to toggle the LCD backlight
*
* Arguments   : led    is the number of the LED to control
*                      0    indicates that you want to toggle ALL the LEDs
*                      1    toggles user LED on the board
*
* Returns     ; none
*********************************************************************************************************
*/

void  LCD_LightToggle (void)
{
    CPU_INT32U  pins;


    pins = GPIO_ReadOutputData(GPIOB);
    if ((pins & GPIOB_LCD_LIGHT) == 0) {
        GPIO_SetBits(  GPIOB, GPIOB_LCD_LIGHT);
    } else {
        GPIO_ResetBits(GPIOB, GPIOB_LCD_LIGHT);
    }
}


/*
*********************************************************************************************************
*                                         ADC INITIALIZATION
*
* Description : This function initializes the board's ADC
*
* Arguments   : none
*
* Returns     : none
*********************************************************************************************************
*/

static  void  ADCS_Init (void)
{
    ADC_InitTypeDef   adc_init;
    GPIO_InitTypeDef  gpio_init;


    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

    gpio_init.GPIO_Pin  = GPIO_Pin_5;
    gpio_init.GPIO_Mode = GPIO_Mode_AIN;
    GPIO_Init(GPIOC, &gpio_init);

    adc_init.ADC_Mode               = ADC_Mode_Independent;
    adc_init.ADC_ScanConvMode       = DISABLE;
    adc_init.ADC_ContinuousConvMode = ENABLE;
    adc_init.ADC_ExternalTrigConv   = ADC_ExternalTrigConv_None;
    adc_init.ADC_DataAlign          = ADC_DataAlign_Right;
    adc_init.ADC_NbrOfChannel       = 1;
    ADC_Init(ADC1, &adc_init);

    ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 1, ADC_SampleTime_13Cycles5);
    ADC_Cmd(ADC1, ENABLE);
    ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}


/*
*********************************************************************************************************
*                                           ADC STATUS
*
* Description : This function initializes the board's ADC
*
* Arguments   : adc     is the number of the ADC to probe.  For this board, the only legitimate value is 1.
*
* Returns     : The numerator of the binary fraction representing the result of the latest ADC conversion.
*               This value will be a 12-bit value between 0x0000 and 0x0FFF, inclusive.
*********************************************************************************************************
*/

CPU_INT16U  ADC_GetStatus (CPU_INT08U  adc)
{
    CPU_INT16U  result;


    result = 0;

    if (adc == 1) {
        result = ADC_GetConversionValue(ADC1);
    }

⌨️ 快捷键说明

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