总结:下层:首先需要gpio口,完成功能接口的实现
上层:需要新建二级菜单和模块,实现处理函数编写,最后在处理函数里面调用下层的接口
实现功能:手电筒长亮,闪烁,快闪,关闭功能。实现的结果如图(配图)(在Organizer菜单选项里面添加二级菜单Torch)
首先需要查看原理图,知道手电筒的GPIO口是哪一个(GPIO23),对比代码GPIO和pinmap的配置(配图)
下层代码涉及E:\7701\MS_Customize\source\product\config\项目名 ,目录下的pinmap_cfg.c 、gpio_cfg.c ;E:\7701\MS_Customize\source\product\driver\gpio\gpio_prod.c共3个文件
可以参考:http://www.mamicode.com/info-detail-1677626.html
http://www.mamicode.com/info-detail-1677626.html
更多配置可以参考:https://www.docin.com/p-274571059.html?docfrom=rrela
pinmap_cfg.c:GPIO引脚注册
gpio_cfg.c : GPIO功能注册
gpio_prod.c: GPIO功能函数接口实现gpio
这个default_value会导致开机启动手电筒,所以需要设置低电平。
然后是GPIO配置,即gpio_cfg.c文件
全局搜索对应的id——GPIO_PROD_TORCH_EN_ID,手电筒相应的接口函数(gpio_prod.c文件)
其在上层使用的接口定义在gpio_prod_api.h
所以其实底层没有什么需要修改的地方,但是需要了解一下底层的东西。底层做接口,上层实现功能。
接下来需要在上层做一些事情:
1.创建模块,创建新的文件,阐述各个文件的作用。创建新模块,需要在E:\7701_3\MS_MMI_Main\source\mmi_app\app目录下添加torch手电筒模块文件夹,创建.c,.h文件夹,在.c文件夹里创建mmitorch.c文件,在.h文件夹里添加mmitorch.h,torch_mdu_def.h,mmitorch_id.def文件。
—>细说一下这几个文件的内容编写:
mmitorch.c:主要用于添加window的table表,菜单入口函数,还有窗口处理函数,功能实现函数(使用了定时器及其嵌套)。
mmitorch.h:模块的添加(各个控件),各个函数的定义
mmitorch_id.def:添加win id
torch_mdu_def.h:模块资源的添加
2.实现window_table表。首先在mmitorch.c里面添加自己想要的window_table表
/**---------------------------------------------------------------------------*
** Const