121 lines
2.9 KiB
C
121 lines
2.9 KiB
C
#ifndef __DRV_GPIO_H__
|
|
#define __DRV_GPIO_H__
|
|
|
|
#include <rtthread.h>
|
|
#include "ciu32l051.h"
|
|
|
|
#ifdef RT_USING_PIN
|
|
|
|
// #define RT_PIN_ENABLE
|
|
|
|
#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}
|
|
|
|
#define SENSOR_POWER_PIN GET_PIN(A, 7)
|
|
/*uart1*/
|
|
#ifndef RT_PIN_ENABLE
|
|
#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
|
|
#else
|
|
#define UART1_TX_GPIO_PIN GET_PIN(A, 11)
|
|
#define UART1_RX_GPIO_PIN GET_PIN(A, 12)
|
|
#endif // !
|
|
|
|
|
|
|
|
/*uart2*/
|
|
#ifndef RT_PIN_ENABLE
|
|
#define UART2_TX_GPIO_PIN GPIO_PIN_6
|
|
#define UART2_TX_GPIO_PORT GPIOB
|
|
|
|
#define UART2_RX_GPIO_PIN GPIO_PIN_7
|
|
#define UART2_RX_GPIO_PORT GPIOB
|
|
#else
|
|
#define UART2_TX_GPIO_PIN GET_PIN(B, 6)
|
|
#define UART2_RX_GPIO_PIN GET_PIN(B, 7)
|
|
#endif // !
|
|
|
|
/*uart3*/
|
|
#ifndef RT_PIN_ENABLE
|
|
#define UART3_TX_GPIO_PIN GPIO_PIN_1
|
|
#define UART3_TX_GPIO_PORT GPIOD
|
|
|
|
#define UART3_RX_GPIO_PIN GPIO_PIN_0
|
|
#define UART3_RX_GPIO_PORT GPIOD
|
|
#else
|
|
#define UART3_TX_GPIO_PIN GET_PIN(D, 1)
|
|
#define UART3_RX_GPIO_PIN GET_PIN(D, 0)
|
|
#endif // !
|
|
/* LPUART1*/
|
|
#ifndef RT_PIN_ENABLE
|
|
#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
|
|
#else
|
|
#define LPUART1_TX_GPIO_PIN GET_PIN(B, 11)
|
|
#define LPUART1_RX_GPIO_PIN GET_PIN(B, 10)
|
|
#endif
|
|
|
|
/*4G 模块控制引脚*/
|
|
|
|
#define NET_PWR_PIN GET_PIN(A, 1)
|
|
#define NET_RST_PIN GET_PIN(A, 2)
|
|
#define USIM_DECT_PIN GET_PIN(A, 3)
|
|
#define ENABLE_3_8_V GET_PIN(A, 5)
|
|
|
|
/*voice 引脚*/
|
|
// #define VOICE_CLK_PIN GET_PIN(B, 12)
|
|
// #define VOICE_DATA_PIN GET_PIN(B, 13)
|
|
// #define VOICE_BUSY_PIN GET_PIN(B, 14)
|
|
|
|
/*按键*/
|
|
#define BUTTON_0 GET_PIN(A, 13)
|
|
|
|
/*蜂鸣器*/
|
|
#define BUZZER_PIN GET_PIN(B, 2)
|
|
|
|
/*LED*/
|
|
#define RED_LED_PIN GET_PIN(B, 3)
|
|
#define GREEN_LED_PIN GET_PIN(B, 4)
|
|
#define YELLOW_LED_PIN GET_PIN(B, 5)
|
|
|
|
|
|
/*联动设备*/
|
|
#define EMV_LED_PIN GET_PIN(B, 0)
|
|
#define FJ_LED_PIN GET_PIN(B, 1)
|
|
|
|
#define EMV_ACT \
|
|
do { \
|
|
rt_pin_write(EMV_LED_PIN, PIN_LOW); \
|
|
rt_thread_mdelay(100); \
|
|
rt_pin_write(EMV_LED_PIN, PIN_HIGH); \
|
|
rt_thread_mdelay(100); \
|
|
} while (0)
|
|
|
|
#define FJ_ON \
|
|
do { \
|
|
rt_pin_write(FJ_LED_PIN, PIN_HIGH); \
|
|
} while (0)
|
|
#define FJ_OFF \
|
|
do { \
|
|
rt_pin_write(FJ_LED_PIN, PIN_LOW); \
|
|
} while (0)
|
|
|
|
struct pin_index
|
|
{
|
|
int index;
|
|
GPIO_t *gpio;
|
|
uint32_t pin;
|
|
};
|
|
#endif
|
|
|
|
#endif // !
|