16 #include "stm32f4xx_hal.h" 18 static void MX_GPIO_Init(GPIO_TypeDef *gpio,
unsigned int pin,
unsigned int mode)
20 GPIO_InitTypeDef GPIO_InitStruct;
24 GPIO_InitStruct.Pin = pin;
25 GPIO_InitStruct.Mode = mode;
27 GPIO_InitStruct.Pull = GPIO_PULLUP;
28 GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
29 HAL_GPIO_Init(gpio, &GPIO_InitStruct);
32 static int gpio_register(
struct st_device *dev,
char *param)
34 MX_GPIO_Init(GPIOH, GPIO_PIN_1, GPIO_MODE_INPUT);
39 static int gpio_getc(
struct st_device *dev,
unsigned char *rd)
46 static int gpio_putc(
struct st_device *dev,
unsigned char data)
48 if((data & 0x01) != 0) {
49 HAL_GPIO_WritePin(GPIOH, GPIO_PIN_1, GPIO_PIN_SET);
51 HAL_GPIO_WritePin(GPIOH, GPIO_PIN_1, GPIO_PIN_RESET);
57 static int gpio_ioctl(
struct st_device *dev,
unsigned int com,
unsigned int arg,
void *param)
63 MX_GPIO_Init(GPIOH, GPIO_PIN_1, GPIO_MODE_INPUT);
67 MX_GPIO_Init(GPIOH, GPIO_PIN_1, GPIO_MODE_OUTPUT_PP);
71 SYSERR_PRINT(
"Unknow command %08lX arg %08lX\n", com, arg);
77 HAL_GPIO_WritePin(GPIOH, GPIO_PIN_1, GPIO_PIN_SET);
81 HAL_GPIO_WritePin(GPIOH, GPIO_PIN_1, GPIO_PIN_RESET);
85 SYSERR_PRINT(
"Unknow command %08lX arg %08lX\n", com, arg);
94 .explan =
"STM32F4 GPIO",
95 .register_dev = gpio_register,
#define IOARG_GPIO_OUTPUT
GPIO出力設定(arg設定値)
#define IOCMD_GPIO_DIRECTION
GPIO入出力設定
#define DEF_DEV_NAME_GPIO
標準GPIOデバイス名
#define IOCMD_GPIO_SET_BITS
GPIO High(1)出力
#define IOCMD_GPIO_CLEAR_BITS
GPIO Low(0)出力
#define IOARG_GPIO_INPUT
GPIO入力設定(arg設定値)
char name[MAX_DEVNAMELRN]
デバイス名文字列