70|0

168

帖子

3

TA的资源

一粒金砂(高级)

楼主
 

[Follow me第二季第3期] [进阶任务] 示例程序中新增命令打印信息 [复制链接]

 

简介

 

quick_start 的menu菜单是一个非常棒的功能。 那么本章节将演示如何在示例程序中新增命令的打印信息

 

正文

 

根据程序的追踪menu_main.c 是程序的主菜单入口文件。我们可以观察到上述定义了很多的菜单。 它同时还包括了一些其他的菜单。

 

 

我们可以按下ctrl + 鼠标左键来点击对应的方法来跳转到具体的某个菜单实现。

 

 

我们可以发现, 菜单的打印其实就是每次把数据写入到缓冲区里, 然后打印到串口。 同时当前的任务等待按下空格然后退出。 所以我们可以仿照这种形式来完成一个属于我们自己的一个简易菜单来打印信息。

 

仿照上述的格式, 首先我们定义一个菜单的头文件

 

menu_text.h


#ifndef MENU_TEXT
#define MENU_TEXT

extern test_fn ns_display_hello_world (void);

#endif /* MENU_ETH_WWW_H_ */

 

和它的具体实现

menu_text.c

 

/*
 * menu_text.c
 *
 *  Created on: 2024年12月1日
 *      Author: 23391
 */

#include "FreeRTOS.h"
#include "FreeRTOSConfig.h"
#include "semphr.h"
#include "queue.h"
#include "task.h"

#include "common_init.h"
#include "common_utils.h"
#include "menu_text.h"


#define CONNECTION_ABORT_CRTL    (0x00)
#define MENU_EXIT_CRTL           (0x20)

static char_t s_print_buffer[BUFFER_LINE_LENGTH] = {};

#define MODULE_NAME     "\r\n%d. Hello world!\r\n"


test_fn ns_display_hello_world (void)
{
    int8_t c = -1;

    print_to_console((void*)s_print_buffer);
    sprintf (s_print_buffer, MODULE_NAME, g_selected_menu);

    print_to_console((void*)s_print_buffer);
        sprintf (s_print_buffer, MENU_RETURN_INFO);

    while ((CONNECTION_ABORT_CRTL != c))
        {
            c = input_from_console ();
            if ((MENU_EXIT_CRTL == c) || (CONNECTION_ABORT_CRTL == c))
            {
                break;
            }
        }
    return (0);
}

 

那么之后在menu_main.c 中包含这个头文件,并且在menu菜单中多增加一行,把我们的方法放进去。

 

 

烧录并且查看实验现象。

 

eefadf42e154a13defad8f70822a0639

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表