Ejemplo n.º 1
0
int stm32_test_gpio(void)
{
	int ret = -1;
	struct clk *clk;
	uint8_t pin_num;
	uint32_t id = GPIO_C;
	int mode, otype, ospeed, pupd;

	clk = clk_get("gpio_c");
	if (!clk)
		return -1;

	/* Set GPIO_C parameters */
	for (pin_num = 0; pin_num < PIN_NUM_MAX; pin_num++) {
		gpio_set_mode(id, pin_num, GPIO_MODE_OUTPUT);
		gpio_set_type(id, pin_num, GPIO_OTYPE_PP);
		gpio_set_speed(id, pin_num, GPIO_OSPEED_HIGH);
		gpio_set_pupd(id, pin_num, GPIO_PUPD_NOPULL);
	}

	/* Check GPIO_C settings */
	for (pin_num = 0; pin_num < PIN_NUM_MAX; pin_num++) {
		/* Test mode */
		mode = gpio_get_mode(id, pin_num);
		if (mode != GPIO_MODE_OUTPUT)
			goto err;

		/* Test output type */
		otype = gpio_get_type(id, pin_num);
		if (otype != GPIO_OTYPE_PP)
			goto err;

		/* Test output speed */
		ospeed = gpio_get_speed(id, pin_num);
		if (ospeed != GPIO_OSPEED_HIGH)
			goto err;

		/* Test pull-up/down */
		pupd = gpio_get_pupd(id, pin_num);
		if (pupd != GPIO_PUPD_NOPULL)
			goto err;
	}

	gpio_set_pin_value(GPIO_C, LED_BLUE, 1);
	gpio_set_pin_value(GPIO_C, LED_GREEN, 1);

	gpio_set_pin_value(GPIO_C, LED_BLUE, 0);
	gpio_set_pin_value(GPIO_C, LED_GREEN, 0);
	ret = 0;

err:
	clk_put(clk);
	return ret;
}
Ejemplo n.º 2
0
/**
 * @brief toggle the TX LED GPIO pin.
 * 
 */
void tx_led_toggle(void)
{
	static uint8_t toggle_state = 0;

	if (toggle_state) {
		gpio_set_pin_value(STATUS_TX_LED_PIN, GPIO_VALUE_LOW);
	} else {
		gpio_set_pin_value(STATUS_TX_LED_PIN, GPIO_VALUE_HIGH);
	}
		
	toggle_state = ~toggle_state;
}
Ejemplo n.º 3
0
/**
 * @brief turn the status TX and RX LEDs off. 
 * 
 */
void txrx_leds_off(void)
{
	gpio_set_pin_value(STATUS_RX_LED_PIN, GPIO_VALUE_HIGH);
	gpio_set_pin_value(STATUS_TX_LED_PIN, GPIO_VALUE_HIGH);
}