请选择 进入手机版 | 继续访问电脑版

单片机程序框架,适合C语言提升

[复制链接]
西小妹谈娱 发表于 2021-1-1 09:57:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
单片机结构框架



框架说明

  1.         通过模仿利用系统方式,实现C语言由过程化转为对象化,淘汰模块间的耦合度,便于移植与维护。作为一个C语言提升项目是一个很好的工程!
复制代码
使用说明

  1.         下载工程后,工程本身是一个STM32F103RCT6工程,可以直接软件仿真。
复制代码
下载后根据使用说明设置。
  1. 使用说明:1、文件夹内容说明:        s_base:一些根本文件log、范例界说等        s_driver:外设驱动文件        s_sys:系统调用文件,每个任务的详细调用2、使用方法:        1.先将s_base、s_driver、s_sys三个文件夹复制到自己的工程目次下,并包罗相应头文件路径,在uart.c中实现log重定向;        2.新建USER文件夹,并增加App.c、App.h文件;        3.重写系统滴答函数,实现g_u64Sysclick自增,单位时间1ms                eg://重写滴答函数                        void HAL_IncTick(void)                        {                                g_u64Sysclick++;                        }        4.界说任务(以主任务为例,别的雷同):        增加主任务级别及主任务结构体                #define APP_MTASK_LEVEL  1              // app 主任务级别                #define APP_STASK_LEVEL  0              // app 子任务级别                st_MainTask     g_stMAppTsak;           // 主应用任务                st_SubTask      g_stSAppTask;           // 子应用任务        写主任务运行函数                eg:// 主应用运行函数, 1s打印一次                        // 软件仿真时为10s 一次                        static void APP_Run(void *arg)                        {                                LOG.D("Test Build Time: %s %s\r\n", __DATE__, __TIME__);                                   Sys_Delay(1000);                        }        写住任务初始化函数:                eg:static void APP_Init(void)                        {                                g_stMAppTsak.m_pid = APP_MTASK_LEVEL;                                 g_stSAppTask.m_sid = APP_STASK_LEVEL;                                g_stSAppTask.m_name = appName;                                g_stSAppTask.m_fun = APP_Run;                                Sys_CreatTask(&g_stMAppTsak, &g_stSAppTask); //创建主应用                        }        5.增加任务入口函数(此函数在main.c的while(1)中调用)                eg: //任务入口                        void MainTask_Entrance(void)                        {                                Sys_InitTask();         //初始化任务                                                        //    LED_Init();         //运行灯初始化                                APP_Init();                                Sys_RunTask();  //运行任务                                                        }       
复制代码
下载链接

链接:https://pan.baidu.com/s/1etGhk_6KPfP-7PyKX2tWFQ
提取码:q1w2

来源:https://blog.csdn.net/qq_38108251/article/details/111992163
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )