Browse Source

按键封装

master
zwsd 3 years ago
parent
commit
4d132e4615
  1. 1
      main/CMakeLists.txt
  2. 44
      main/key.c
  3. 14
      main/key.h
  4. 49
      main/main.c

1
main/CMakeLists.txt

@ -1,3 +1,4 @@
idf_component_register(SRCS "main.c"
"ble_spp_client_demo.c"
"key.c"
INCLUDE_DIRS ".")

44
main/key.c

@ -0,0 +1,44 @@
#include "key.h"
#include "esp_log.h"
#include "driver/gpio.h"
static key_ble_cb_t s_ble_key_cb;
void key_init()
{
gpio_config_t gpio_grb_led_structer;
gpio_grb_led_structer.intr_type = GPIO_INTR_DISABLE;
gpio_grb_led_structer.mode = GPIO_MODE_INPUT;
gpio_grb_led_structer.pin_bit_mask = GPIO_KEY_INPUT_PIN_SEL;
gpio_grb_led_structer.pull_down_en = 0;
gpio_grb_led_structer.pull_up_en = 0;
gpio_config(&gpio_grb_led_structer);
}
void key_schedule()
{
if (gpio_get_level(36) == 0)
{
/* code */
ESP_LOGI("Finny", "KEY_REC level 0");
while (gpio_get_level(36) == 0)
{
}
s_ble_key_cb("setPosition180");
ESP_LOGI("Finny", "stop");
}
if (gpio_get_level(39) == 0)
{
/* code */
ESP_LOGI("Finny", "KEY_MODE level 0");
while (gpio_get_level(39) == 0)
{
}
s_ble_key_cb("setPosition360");
ESP_LOGI("Finny", "stop");
}
}
void key_ble_send_cmd_reg(key_ble_cb_t cb) { s_ble_key_cb = cb; };

14
main/key.h

@ -0,0 +1,14 @@
#include <stdint.h>
#include <string.h>
#include <stdbool.h>
#include <stdio.h>
#define KEY_REC 36
#define KEY_MODE 39
#define GPIO_KEY_INPUT_PIN_SEL ((1ULL << KEY_REC) | (1ULL << KEY_MODE))
typedef void (*key_ble_cb_t)(char* string);
void key_init();
void key_schedule();
void key_ble_send_cmd_reg(key_ble_cb_t cb);

49
main/main.c

@ -13,61 +13,16 @@
****************************************************************************/
#include "ble_spp_client_demo.h"
#include "esp_log.h"
#include "driver/gpio.h"
#include "key.h"
void motor_drive_hex_to_str(char *hex, int hex_len, char *str);
// typedef void (*key_ble_cb_t)(char* string);
// static s_ble_key_cb ble_key_cb
#define KEY_REC 36
#define KEY_MODE 39
#define GPIO_KEY_INPUT_PIN_SEL ((1ULL << KEY_REC) | (1ULL << KEY_MODE))
void key_init()
{
gpio_config_t gpio_grb_led_structer;
gpio_grb_led_structer.intr_type = GPIO_INTR_DISABLE;
gpio_grb_led_structer.mode = GPIO_MODE_INPUT;
gpio_grb_led_structer.pin_bit_mask = GPIO_KEY_INPUT_PIN_SEL;
gpio_grb_led_structer.pull_down_en = 0;
gpio_grb_led_structer.pull_up_en = 0;
gpio_config(&gpio_grb_led_structer);
}
void key_schedule()
{
if (gpio_get_level(36) == 0)
{
/* code */
ESP_LOGI("Finny", "KEY_REC level 0");
while (gpio_get_level(36) == 0)
{
}
ble_key_cb("setPosition180");
ESP_LOGI("Finny", "stop");
}
if (gpio_get_level(39) == 0)
{
/* code */
ESP_LOGI("Finny", "KEY_MODE level 0");
while (gpio_get_level(39) == 0)
{
}
ble_key_cb("setPosition360");
ESP_LOGI("Finny", "stop");
}
}
void app_main(void)
{
ble_init();
key_init();
key_ble_send_cmd_reg(ble_key_cb);
while (true)
{

Loading…
Cancel
Save