CIU32_L051_M307R/drivers/inc/drv_gpio.h

55 lines
1.2 KiB
C

#ifndef __DRV_GPIO_H__
#define __DRV_GPIO_H__
#include <rtthread.h>
#include "ciu32l051.h"
#ifdef RT_USING_PIN
#define __CIU_PORT(port) (GPIO##port##_BASE)
#define GET_PIN(port, pin) (rt_base_t)((16 * (((rt_base_t)__CIU_PORT(port) - (rt_base_t)GPIOA_BASE) / (0x0400UL))) + pin)
#define __CIU32_PIN(index, gpio, gpio_index) {index, GPIO##gpio, GPIO_PIN_##gpio_index}
/*uart1*/
#define UART1_TX_GPIO_PIN GPIO_PIN_11
#define UART1_TX_GPIO_PORT GPIOA
#define UART1_RX_GPIO_PIN GPIO_PIN_12
#define UART1_RX_GPIO_PORT GPIOA
/* LPUART1*/
#define LPUART1_TX_GPIO_PIN GPIO_PIN_11
#define LPUART1_TX_GPIO_PORT GPIOB
#define LPUART1_RX_GPIO_PIN GPIO_PIN_10
#define LPUART1_RX_GPIO_PORT GPIOB
/*voice 引脚*/
#define VOICE_CLK_PIN GET_PIN(C, 9)
#define VOICE_DATA_PIN GET_PIN(A, 8)
#define VOICE_BUSY_PIN GET_PIN(C, 8)
/*按键*/
#define BUTTON_0 GET_PIN(C, 11)
/*LED*/
#define RED_LED_PIN GET_PIN(B, 4)
#define GREEN_LED_PIN GET_PIN(B, 8)
#define YELLOW_LED_PIN GET_PIN(B, 6)
/*联动设备*/
#define EMV_LED_PIN GET_PIN(B, 0)
#define FJ_LED_PIN GET_PIN(B, 1)
struct pin_index
{
int index;
GPIO_t *gpio;
uint32_t pin;
};
#endif
#endif // !