up
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
idf_component_register(SRCS "hello_world_main.c" "iic.c" "oled.c" "state.c" "tca9535.c" "moonshineOS_core/cli.c"
|
idf_component_register(SRCS "hello_world_main.c" "iic.c" "oled.c" "state.c" "tca9535.c" "moonshineOS_core/cli.c"
|
||||||
PRIV_REQUIRES spi_flash esp_driver_i2c log
|
PRIV_REQUIRES spi_flash esp_driver_i2c esp_driver_uart log
|
||||||
INCLUDE_DIRS "." "moonshineOS_core")
|
INCLUDE_DIRS "." "moonshineOS_core")
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ void app_main(void)
|
|||||||
tca9535_init();
|
tca9535_init();
|
||||||
oled_init();
|
oled_init();
|
||||||
cli_init();
|
cli_init();
|
||||||
//cli_run();
|
cli_start();
|
||||||
while(1){
|
while(1){
|
||||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,16 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
|
#include "driver/uart.h"
|
||||||
|
#include "driver/uart_vfs.h"
|
||||||
#include "iic.h"
|
#include "iic.h"
|
||||||
|
|
||||||
#define CLI_LINE_MAX 256
|
#define CLI_LINE_MAX 256
|
||||||
#define CLI_MAX_ARGS 16
|
#define CLI_MAX_ARGS 16
|
||||||
|
#define CLI_TASK_STACK 4096
|
||||||
|
#define CLI_TASK_PRIO 5
|
||||||
|
#define CLI_UART_NUM UART_NUM_0
|
||||||
|
#define CLI_UART_RX_BUF 256
|
||||||
|
|
||||||
typedef int (*cli_cmd_func_t)(int argc, char **argv);
|
typedef int (*cli_cmd_func_t)(int argc, char **argv);
|
||||||
|
|
||||||
@@ -55,6 +61,7 @@ static int read_line(char *buf, int maxlen)
|
|||||||
while (i < maxlen - 1) {
|
while (i < maxlen - 1) {
|
||||||
int c = getchar();
|
int c = getchar();
|
||||||
if (c < 0) {
|
if (c < 0) {
|
||||||
|
clearerr(stdin);
|
||||||
vTaskDelay(1);
|
vTaskDelay(1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -101,6 +108,18 @@ void cli_init(void)
|
|||||||
{
|
{
|
||||||
setvbuf(stdin, NULL, _IONBF, 0);
|
setvbuf(stdin, NULL, _IONBF, 0);
|
||||||
setvbuf(stdout, NULL, _IONBF, 0);
|
setvbuf(stdout, NULL, _IONBF, 0);
|
||||||
|
uart_driver_install(CLI_UART_NUM, CLI_UART_RX_BUF, 0, 0, NULL, 0);
|
||||||
|
uart_vfs_dev_use_driver(CLI_UART_NUM);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void cli_task(void *arg)
|
||||||
|
{
|
||||||
|
cli_run();
|
||||||
|
}
|
||||||
|
|
||||||
|
void cli_start(void)
|
||||||
|
{
|
||||||
|
xTaskCreate(cli_task, "cli", CLI_TASK_STACK, NULL, CLI_TASK_PRIO, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cli_run(void)
|
void cli_run(void)
|
||||||
|
|||||||
@@ -3,5 +3,6 @@
|
|||||||
|
|
||||||
void cli_init(void);
|
void cli_init(void);
|
||||||
void cli_run(void);
|
void cli_run(void);
|
||||||
|
void cli_start(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user