int setup_pins(int gpionum)
{

    /*
     * Create the required GPIO pin and reserve it
     */

    if (gpio_alloc(gpionum))
        {
        fprintf(stderr, "Error allocating GPIO %d, errno = %d\n", gpionum, errno);
        return (1);
        }

    if (gpio_set_direction(gpionum, "out"))
        {
        fprintf(stderr, "Error setting GPIO %d direction, errno = %d\n", gpionum, errno);
        return (1);
        }

    if (gpio_write_pin(gpionum, "1"))
        {
        fprintf(stderr, "Error setting GPIO %d value, errno = %d\n", gpionum, errno);
        return (1);
        }

      return(0);
}
Пример #2
0
void led_on() {
  gpio_write_pin(DISC_LD3, GPIO_HIGH);
  gpio_write_pin(DISC_LD4, GPIO_HIGH);
  gpio_write_pin(DISC_LD5, GPIO_HIGH);
  gpio_write_pin(DISC_LD6, GPIO_HIGH);
  gpio_write_pin(DISC_LD7, GPIO_HIGH);
  gpio_write_pin(DISC_LD8, GPIO_HIGH);
  gpio_write_pin(DISC_LD9, GPIO_HIGH);
  gpio_write_pin(DISC_LD10, GPIO_HIGH);
}
Пример #3
0
void led_off() {
  gpio_write_pin(DISC_LD3, GPIO_LOW);
  gpio_write_pin(DISC_LD4, GPIO_LOW);
  gpio_write_pin(DISC_LD5, GPIO_LOW);
  gpio_write_pin(DISC_LD6, GPIO_LOW);
  gpio_write_pin(DISC_LD7, GPIO_LOW);
  gpio_write_pin(DISC_LD8, GPIO_LOW);
  gpio_write_pin(DISC_LD9, GPIO_LOW);
  gpio_write_pin(DISC_LD10, GPIO_LOW);
}
Пример #4
0
void es32f0_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
{
    const struct pin_index *index;
    index = get_pin(pin);
    if (index == RT_NULL)
    {
        return;
    }
    gpio_write_pin(index->gpio, index->pin, value);
}
Пример #5
0
/**
 ****************************************************************************************
 * @brief Configure the SPI GPIO and set RS  、 RST GPIO output,Init them.
 * @description
 * 
 ****************************************************************************************
 */
void oled_io_config(void)
{
		// pin mux
        syscon_SetPMCR0WithMask(QN_SYSCON,
															P03_MASK_PIN_CTRL |
															P07_MASK_PIN_CTRL |
															P11_MASK_PIN_CTRL |
															P13_MASK_PIN_CTRL,
															P03_GPIO_3_PIN_CTRL
														 | P07_GPIO_7_PIN_CTRL
#if	(FB_OLED && FB_SPI_OLED)
                             | P13_SPI1_CLK_PIN_CTRL      //P1.3 spi1 clk
                             | P11_SPI1_DAT_PIN_CTRL      //P1.1 spi1 data out
#else
														 | P13_GPIO_11_PIN_CTRL
														 | P11_GPIO_9_PIN_CTRL
#endif	
                             );  
		
    //Init Gpio with a callback,it's necessary
		//gpio_init(gpio_callback);
		//set the LCD_RS_PIN an output
		gpio_set_direction(OLED_RS_PIN,GPIO_OUTPUT);
		gpio_write_pin(OLED_RS_PIN,GPIO_LOW);

		//set the LCD_RS_PIN an output
		gpio_set_direction(OLED_RST_PIN,GPIO_OUTPUT);
		//prevent it reset the lcd
		gpio_write_pin(OLED_RST_PIN,GPIO_HIGH);

#if	(FB_OLED && FB_IIC_OLED)
		//set the LCD_RS_PIN an output
		gpio_set_direction(OLED_SCLK_PIN,GPIO_OUTPUT);
		//prevent it reset the lcd
		gpio_write_pin(OLED_SCLK_PIN,GPIO_HIGH);		

		//set the LCD_RS_PIN an output
		gpio_set_direction(OLED_SDIN_PIN,GPIO_OUTPUT);
		//prevent it reset the lcd
		gpio_write_pin(OLED_SDIN_PIN,GPIO_HIGH);
#endif
}
Пример #6
0
/**
 ****************************************************************************************
 * @brief   Set led on/off
 * @param[in]    idx    1~5 -> led 1~5
 * @param[in]    enable on/off
 * @description
 *  This function switchs on/off led individually.
 ****************************************************************************************
 */
void led_set(uint32_t idx, enum led_st enable)
{
    enum gpio_pin reg;
    
    switch(idx)
    {
        case 1:
            reg = LED1_PIN;
            break;
        case 2:
            reg = LED2_PIN;
            break;
        default:
            return;
    }

    gpio_write_pin(reg, (enum gpio_level)enable);
}
Пример #7
0
/**
 ****************************************************************************************
 * @brief  Setup the microcontroller system.
 *
 *  Initialize the system clock and pins.
 *****************************************************************************************
 */
void SystemInit(void)
{
    /*
     **************************
     * Sub module clock setting
     **************************
     */

    // Disable all peripheral clock, will be enabled in the driver initilization.
    timer_clock_off(QN_TIMER0);
    timer_clock_off(QN_TIMER1);
    timer_clock_off(QN_TIMER2);
    timer_clock_off(QN_TIMER3);
    uart_clock_off(QN_UART0);
    uart_clock_off(QN_UART1);
    spi_clock_off(QN_SPI0);
    usart_reset((uint32_t) QN_SPI1);
    spi_clock_off(QN_SPI1);
    flash_clock_off();
    gpio_clock_off();
    adc_clock_off();
    dma_clock_off();
    pwm_clock_off();

    // Configure sytem clock.
    syscon_set_sysclk_src(CLK_XTAL, __XTAL);
    syscon_set_ahb_clk(__AHB_CLK);
    syscon_set_ble_clk(__BLE_CLK);
    syscon_set_apb_clk(__APB_CLK);
    syscon_set_timer_clk(__TIMER_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART0, __USART_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART1, __USART_CLK);
    clk32k_enable(__32K_TYPE);

    /*
     **************************
     * IO configuration
     **************************
     */

    SystemIOCfg();

    /*
     **************************
     * Peripheral setting
     **************************
     */

    // GPIO initialization for led, button & test control pin.
    gpio_init(gpio_interrupt_callback);

    // LED
    led_init();

#if	(FB_OLED && FB_SPI_OLED)
    spi_init(QN_SPI1, SPI_BITRATE(10000), SPI_8BIT, SPI_MASTER_MOD);
#endif


    /// Firefly add
#if	(FB_OLED)
    OLED_Init();			//初始化 OLED

    OLED_Clear();			//清屏 OLED

    OLED_ShowString(0,0,"  Firefly Team  ");
    OLED_ShowString(0,2,"    Wait ...    ");
//		OLED_ShowString(4,4,"Please wait...");
#endif
//#if		(FB_OLED)
//		OLED_Init();			//初始化OLED
//		delay(10000);
//		OLED_Clear();			//清屏 OLED
//		delay(10000);

//		OLED_ShowCHinese(9,0,0);
//		OLED_ShowCHinese(27,0,1);
//		OLED_ShowCHinese(45,0,2);
//		OLED_ShowCHinese(63,0,3);
//		OLED_ShowCHinese(81,0,4);
//		OLED_ShowCHinese(99,0,5);
//#endif

#if	(defined(CFG_PRO_TEST))
    gpio_pull_set(BUTTON1_PIN,GPIO_PULL_UP);
    gpio_set_direction(BUTTON1_PIN,GPIO_INPUT);

    if (gpio_read_pin(BUTTON1_PIN) == GPIO_LOW)
        app_env.pro_test_flag = TRUE;
    else
        app_env.pro_test_flag = FALSE;
#endif



    // Test controll pin is input to check work mode
#if (defined(QN_TEST_CTRL_PIN))
    gpio_pull_set(QN_TEST_CTRL_PIN, GPIO_PULL_UP);
    gpio_set_direction_field(QN_TEST_CTRL_PIN, (uint32_t)GPIO_INPUT);

#if (defined(CFG_HCI_UART))
    // Initialize HCI UART port
    uart_init(QN_HCI_PORT, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_HCI_PORT, MASK_ENABLE);
    uart_rx_enable(QN_HCI_PORT, MASK_ENABLE);
#elif (defined(CFG_HCI_SPI))
    // Initialize HCI SPI port
    spi_init(QN_HCI_PORT, SPI_BITRATE(1000000), SPI_8BIT, SPI_SLAVE_MOD);
    gpio_set_direction_field(CFG_HCI_SPI_WR_CTRL_PIN, (uint32_t)GPIO_OUTPUT);
    gpio_write_pin(CFG_HCI_SPI_WR_CTRL_PIN, GPIO_HIGH);
#endif
#endif

    // Button
    button_init();

#if (QN_DBG_PRINT)
    uart_init(QN_DEBUG_UART, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_DEBUG_UART, MASK_ENABLE);
    uart_rx_enable(QN_DEBUG_UART, MASK_ENABLE);
#endif
}
Пример #8
0
/**
 ****************************************************************************************
 * @brief  Disable hardware flow control
 * @param[in]       UART          QN_UART0 or QN_UART1
 * @return TRUE
 * @description
 *  Disable specified UART port hardware flow control 
 *****************************************************************************************
 */
bool uart_flow_off(QN_UART_TypeDef *UART)
{
    //uart_uart_SetCRWithMask(UART, UART_MASK_CTS_EN|UART_MASK_RTS_EN, MASK_DISABLE);
    //return true;

    bool rt = false;
    uint32_t int_restore = 0;

    // Disable UART interrupt
#if CONFIG_ENABLE_DRIVER_UART0==TRUE   
    if(UART == QN_UART0)
        int_restore = NVIC->ISER[0] & ((1<<UART0_TX_IRQn) | (1<<UART0_RX_IRQn));
#endif
#if CONFIG_ENABLE_DRIVER_UART1==TRUE
    if(UART == QN_UART1)
        int_restore = NVIC->ISER[0] & ((1<<UART1_TX_IRQn) | (1<<UART1_RX_IRQn));
#endif
    NVIC->ICER[0] = int_restore;

    do
    {
        // Check if no tx is ongoing
        if(UART_TX_FREE == uart_check_tx_free(UART))
            break;

        // Disable rx (RTS/CTS -> GPIO high)
#if CONFIG_ENABLE_DRIVER_UART0==TRUE
        if(UART == QN_UART0)
        {
            syscon_SetPMCR0WithMask(QN_SYSCON,
                                    P02_MASK_PIN_CTRL | P01_MASK_PIN_CTRL,
                                    P02_GPIO_2_PIN_CTRL | P01_GPIO_1_PIN_CTRL);

            gpio_write_pin(GPIO_P02, GPIO_HIGH);
            gpio_write_pin(GPIO_P01, GPIO_HIGH);
        }
#endif
#if CONFIG_ENABLE_DRIVER_UART1==TRUE
        if(UART == QN_UART1)
        {
            // NOTE!!!!!
            // Assume UART1 used P2.2 and P3.6 as RTS/CTS. Other case this snippet should be modified.
            syscon_SetPMCR1WithMask(QN_SYSCON,
                                    P22_MASK_PIN_CTRL | P36_MASK_PIN_CTRL,
                                    P22_GPIO_18_PIN_CTRL | P36_GPIO_30_PIN_CTRL);

            gpio_write_pin(GPIO_P22, GPIO_HIGH);
            gpio_write_pin(GPIO_P36, GPIO_HIGH);
        }
#endif
        // Wait for 1 bytes duration to guarantee host has not started a tx at this time.
        // Assume buadrate 115200
        delay(100);

        // Check if data has been received during the waiting time
        if(uart_uart_GetIntFlag(UART) & UART_MASK_RX_IF)
        {
            // Switch RTS/CTS back
#if CONFIG_ENABLE_DRIVER_UART0==TRUE
            if(UART == QN_UART0)
            {
                syscon_SetPMCR0WithMask(QN_SYSCON, 
                                        P02_MASK_PIN_CTRL | P01_MASK_PIN_CTRL,
                                        P02_UART0_RTS_PIN_CTRL | P01_UART0_CTS_PIN_CTRL);
            }
#endif
#if CONFIG_ENABLE_DRIVER_UART1==TRUE
            if(UART == QN_UART1)
            {
                // NOTE!!!!!
                // Assume UART1 used P2.2 and P3.6 as RTS/CTS. Other case this snippet should be modified.
                syscon_SetPMCR1WithMask(QN_SYSCON, 
                                        P22_MASK_PIN_CTRL | P36_MASK_PIN_CTRL,
                                        P22_UART1_RTS_PIN_CTRL | P36_UART1_CTS_PIN_CTRL);
            }
#endif
            // failed.
            break;
        }
        
        // success.
        rt = true;
    }
    while(false);

    // Restore uart interrupt status
    NVIC->ISER[0] = int_restore;

    return rt;
}
Пример #9
0
/**
 ****************************************************************************************
 * @brief  Setup the microcontroller system.
 *
 *  Initialize the system clock and pins.
 *****************************************************************************************
 */
void SystemInit(void)
{
    /*
     **************************
     * Sub module clock setting
     **************************
     */

    // Reset SPI1 module(since the default register value was changed in bootloader)
    syscon_SetCRSS(QN_SYSCON, SYSCON_MASK_USART1_RST);
    syscon_SetCRSC(QN_SYSCON, SYSCON_MASK_USART1_RST);
    
    /*
        Disable all peripheral clock, will be enabled in the driver initilization.
        The next function performs the equivalent effect of a collection of these functions.
    
        timer_clock_off(QN_TIMER0);
        timer_clock_off(QN_TIMER1);
        timer_clock_off(QN_TIMER2);
        timer_clock_off(QN_TIMER3);
        uart_clock_off(QN_UART0);
        uart_clock_off(QN_UART1);
        spi_clock_off(QN_SPI0);
        spi_clock_off(QN_SPI1);
        flash_clock_off();
        gpio_clock_off();
        adc_clock_off();
        dma_clock_off();
        pwm_clock_off();
    */
    syscon_SetCRSS(QN_SYSCON, SYSCON_MASK_GATING_TIMER0
                            | SYSCON_MASK_GATING_TIMER1
                            | SYSCON_MASK_GATING_TIMER2
                            | SYSCON_MASK_GATING_TIMER3
                            | SYSCON_MASK_GATING_UART0
                            | SYSCON_MASK_GATING_UART1
                            | SYSCON_MASK_GATING_SPI0
                            | SYSCON_MASK_GATING_SPI1
                            | SYSCON_MASK_GATING_SPI_AHB
                            | SYSCON_MASK_GATING_GPIO
                            | SYSCON_MASK_GATING_ADC
                            | SYSCON_MASK_GATING_DMA
                            | SYSCON_MASK_GATING_PWM);
    
    // Configure sytem clock. 
    syscon_set_sysclk_src(CLK_XTAL, __XTAL);
    syscon_set_ahb_clk(__AHB_CLK);
    syscon_set_ble_clk(__BLE_CLK);
    syscon_set_apb_clk(__APB_CLK);
    syscon_set_timer_clk(__TIMER_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART0, __USART_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART1, __USART_CLK);  
    clk32k_enable(__32K_TYPE);
    
    /*
     **************************
     * IO configuration
     **************************
     */

    SystemIOCfg();

    /*
     **************************
     * Peripheral setting
     **************************
     */

    // GPIO initialization for led, button & test control pin.
    gpio_init(gpio_interrupt_callback);

    // LED
    led_init();

    // Test controll pin is input to check work mode
#if (defined(QN_TEST_CTRL_PIN))
    gpio_pull_set(QN_TEST_CTRL_PIN, GPIO_PULL_UP);
    gpio_set_direction_field(QN_TEST_CTRL_PIN, (uint32_t)GPIO_INPUT);
    
#if (defined(CFG_HCI_UART))
    // Initialize HCI UART port
    uart_init(QN_HCI_PORT, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_HCI_PORT, MASK_ENABLE);
    uart_rx_enable(QN_HCI_PORT, MASK_ENABLE);
#elif (defined(CFG_HCI_SPI))
    // Initialize HCI SPI port
    spi_init(QN_HCI_PORT, SPI_BITRATE(1000000), SPI_8BIT, SPI_SLAVE_MOD);
    gpio_set_direction_field(CFG_HCI_SPI_WR_CTRL_PIN, (uint32_t)GPIO_OUTPUT);
    gpio_write_pin(CFG_HCI_SPI_WR_CTRL_PIN, GPIO_HIGH);
#endif
#endif

    // Button
    button_init();

#if (QN_DBG_PRINT)
    uart_init(QN_DEBUG_UART, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_DEBUG_UART, MASK_ENABLE);
    uart_rx_enable(QN_DEBUG_UART, MASK_ENABLE);
#endif
}
Пример #10
0
/**
 ****************************************************************************************
 * @brief  Setup the microcontroller system.
 *
 *  Initialize the system clock and pins.
 *****************************************************************************************
 */
void SystemInit(void)
{
    /*
     **************************
     * Sub module clock setting
     **************************
     */

    // Disable all peripheral clock, will be enabled in the driver initilization.
    timer_clock_off(QN_TIMER0);
    timer_clock_off(QN_TIMER1);
    timer_clock_off(QN_TIMER2);
    timer_clock_off(QN_TIMER3);
    uart_clock_off(QN_UART0);
    uart_clock_off(QN_UART1);
    spi_clock_off(QN_SPI0);
    usart_reset((uint32_t) QN_SPI1);
    spi_clock_off(QN_SPI1);
    flash_clock_off();
    gpio_clock_off();
    adc_clock_off();
    dma_clock_off();
    pwm_clock_off();

    // Configure sytem clock.
    syscon_set_sysclk_src(CLK_XTAL, __XTAL);
    syscon_set_ahb_clk(__AHB_CLK);
    syscon_set_ble_clk(__BLE_CLK);
    syscon_set_apb_clk(__APB_CLK);
    syscon_set_timer_clk(__TIMER_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART0, __USART_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART1, __USART_CLK);
    clk32k_enable(__32K_TYPE);


// if pull down GPIO_P12 when power on,it will enter the test mode
#if defined(CFG_ALL_GPIO_TEST)
    //set GPIO_P12 direction to GPIO_INPUT
    syscon_SetPMCR0(QN_SYSCON,P12_GPIO_10_PIN_CTRL);
    gpio_init(gpio_interrupt_callback);
    gpio_pull_set(GPIO_P12, GPIO_PULL_UP);
    gpio_set_direction_field(GPIO_P12, (uint32_t)GPIO_INPUT);

    //check if it's pull down
    if (gpio_read_pin(GPIO_P12) == GPIO_LOW)
    {
        //set a flag to enter test mode until device reset
        app_env.test_flag = TRUE;
    }
    else
        app_env.test_flag = FALSE;
#endif
    /*
     **************************
     * IO configuration
     **************************
     */

    SystemIOCfg();

    /*
     **************************
     * Peripheral setting
     **************************
     */

    // GPIO initialization for led, button & test control pin.
    gpio_init(gpio_interrupt_callback);

    // LED
    led_init();

    // Test controll pin is input to check work mode
#if (defined(QN_TEST_CTRL_PIN))
    gpio_pull_set(QN_TEST_CTRL_PIN, GPIO_PULL_UP);
    gpio_set_direction_field(QN_TEST_CTRL_PIN, (uint32_t)GPIO_INPUT);

#if (defined(CFG_HCI_UART))
    // Initialize HCI UART port
    uart_init(QN_HCI_PORT, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_HCI_PORT, MASK_ENABLE);
    uart_rx_enable(QN_HCI_PORT, MASK_ENABLE);
#elif (defined(CFG_HCI_SPI))
    // Initialize HCI SPI port
    spi_init(QN_HCI_PORT, SPI_BITRATE(1000000), SPI_8BIT, SPI_SLAVE_MOD);
    gpio_set_direction_field(CFG_HCI_SPI_WR_CTRL_PIN, (uint32_t)GPIO_OUTPUT);
    gpio_write_pin(CFG_HCI_SPI_WR_CTRL_PIN, GPIO_HIGH);
#endif
#endif

#if defined(QN_COM_UART)
    // Initialize User UART port
    uart_init(QN_COM_UART, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_COM_UART, MASK_ENABLE);
    uart_rx_enable(QN_COM_UART, MASK_ENABLE);
#endif

#if (QN_DBG_PRINT)
    // Initialize Debug UART port
    uart_init(QN_DEBUG_UART, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_DEBUG_UART, MASK_ENABLE);
    uart_rx_enable(QN_DEBUG_UART, MASK_ENABLE);
#endif

// if enter test mode flag had been seted,enter a loop to test all GPIO.
#if		(defined(CFG_ALL_GPIO_TEST))
    if (app_env.test_flag == TRUE)
		{
        //get a warnning to user
        QPRINTF("\r\n@@@You pull down the GPIO_level of GPIO_P12 when power on,so it will enter the test mode!");
        while(1)
        {
            all_gpio_test();
        }
		}
#endif
}
Пример #11
0
/**
 ****************************************************************************************
 * @brief  Setup the microcontroller system.
 *
 *  Initialize the system clock and pins.
 *****************************************************************************************
 */
void SystemInit(void)
{
    /*
     **************************
     * Sub module clock setting
     **************************
     */

    // Disable all peripheral clock, will be enabled in the driver initilization.
    timer_clock_off(QN_TIMER0);
    timer_clock_off(QN_TIMER1);
    timer_clock_off(QN_TIMER2);
    timer_clock_off(QN_TIMER3);
    uart_clock_off(QN_UART0);
    uart_clock_off(QN_UART1);
    spi_clock_off(QN_SPI0);
    usart_reset((uint32_t) QN_SPI1);
    spi_clock_off(QN_SPI1);
    flash_clock_off();
    gpio_clock_off();
    adc_clock_off();
    dma_clock_off();
    pwm_clock_off();
    
    // Configure sytem clock. 
    syscon_set_sysclk_src(CLK_XTAL, __XTAL);
    syscon_set_ahb_clk(__AHB_CLK);
    syscon_set_ble_clk(__BLE_CLK);
    syscon_set_apb_clk(__APB_CLK);
    syscon_set_timer_clk(__TIMER_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART0, __USART_CLK);
    syscon_set_usart_clk((uint32_t)QN_UART1, __USART_CLK);  
    clk32k_enable(__32K_TYPE);
    
    /*
     **************************
     * IO configuration
     **************************
     */

    SystemIOCfg();

    /*
     **************************
     * Peripheral setting
     **************************
     */

    // GPIO initialization for led, button & test control pin.
    gpio_init(gpio_interrupt_callback);

    // LED
    led_init();

    // Test controll pin is input to check work mode
#if (defined(QN_TEST_CTRL_PIN))
    gpio_pull_set(QN_TEST_CTRL_PIN, GPIO_PULL_UP);
    gpio_set_direction_field(QN_TEST_CTRL_PIN, (uint32_t)GPIO_INPUT);
    
#if (defined(CFG_HCI_UART))
    // Initialize HCI UART port
    uart_init(QN_HCI_PORT, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_HCI_PORT, MASK_ENABLE);
    uart_rx_enable(QN_HCI_PORT, MASK_ENABLE);
#elif (defined(CFG_HCI_SPI))
    // Initialize HCI SPI port
    spi_init(QN_HCI_PORT, SPI_BITRATE(1000000), SPI_8BIT, SPI_SLAVE_MOD);
    gpio_set_direction_field(CFG_HCI_SPI_WR_CTRL_PIN, (uint32_t)GPIO_OUTPUT);
    gpio_write_pin(CFG_HCI_SPI_WR_CTRL_PIN, GPIO_HIGH);
#endif
#endif

    // Button
    button_init();

#if (QN_DBG_PRINT)
    uart_init(QN_DEBUG_UART, USARTx_CLK(0), UART_9600);
    uart_tx_enable(QN_DEBUG_UART, MASK_ENABLE);
    uart_rx_enable(QN_DEBUG_UART, MASK_ENABLE);
#endif
}
Пример #12
0
int main(int argc, char *argv[])
{
    int i;
    
    /* 
     * Create the required GPIO pins and reserve them 
     */
    
    /* 
     * Setup GPIO30. Output and LOW 
     */
     
    if (gpio_set_direction(30, "out"))
        err_exit();
    
    if (gpio_write_pin(30, "0"))
        err_exit();
        
 
    /* 
     * Set up GPIO 46. Output and LOW 
     */
     
    if (gpio_set_direction(46, "out"))
        err_exit();
    
    if (gpio_write_pin(46, "0"))
        err_exit();
        
    
    /* 
     * Setup GPIO7. Output 
     */
     
    if (gpio_set_direction(7, "out"))
        err_exit();    
  
    /* 
     * Flash the LED 10 times with ~1 second delay in between 
     */    
    for (i=0; i < 10; i++)
        {
        if (gpio_write_pin(7, "0"))    /* Turn the LED off */
            err_exit();

        sleep(1);                      /* Wait ~1 second */
        
        if (gpio_write_pin(7, "1"))    /* Turn the LED on */
            err_exit();

        sleep(1);
        }
        

    /* 
     * Clean up 
     */
    if (gpio_write_pin(7, "0"))       /* Turn the LED off */
            err_exit();
            
    if (gpio_dealloc(30))   /* Unreserve /sys/class/gpio/gpio30 (Internal MUX) */
        err_exit();
        
    if (gpio_dealloc(46))    /* Unreserve /sys/class/gpio/gpio46 (Internal MUX) */
        err_exit();
        
    if (gpio_dealloc(7))    /* Unreserve /sys/class/gpio/gpio7  (Arduino IO13) */
        err_exit();
        
    
    return(0);
}