为了实现新系统的需求,本节基于5.1节新添加的硬件来更改终端(UE)的用户程序。本程序是在KDS集成开发环境中使用C语言编写而成的。KDS的使用方法见附录B.1, 安装KDS集成开发环境、导入工程、编译工程等基本操作可按照该快速指南进行 。
用户程序的更改逻辑一般是按照变量定义、变量赋值、外设初始化、数据获取、数据发送、数据显示的流程进行的;在“葫芦”源码中以“画瓢处”为标识,可以通过搜索“画瓢处”获得代码的插入位置,具体操作步骤如下。
1.新建一个文件夹并复制模板工程
(1)新建一个文件夹,用来“画葫芦”,构建自己的工作文件夹,最好在末尾标注日期。
(2)将模板用户程序复制一份至新建的文件夹,按个人习惯自定义重新命名,此处为“画瓢”用户程序。特别要注意的是,这一步很重要,不要去修改模板,模板是在复制时使用的。
(3)将HCI文件夹下的用户服务器侦听程序US-Monitor文件夹、数据库DataBase文件夹也复制到新建的文件夹。
参见“..\04-Soft\03-Example\CH05_Prg”。
2.将用户程序导入KDS集成开发环境
打开KDS集成开发环境,如未安装KDS集成开发环境的用户请参考附录B.1进行安装;再将准备“画瓢处”的用户程序导入KDS集成开发环境中,具体导入流程也请参考该附录B.1。
3.在工程中搜索“画瓢处”
导入工程后,在工程中进行如下操作:
(1)单击“Search”→“ ”,弹出如图5-3所示的窗口。
(2)选择“ ”,并在“ ”栏目下面的文本框中填写“*.*”,就可以进行全局搜索了。
(3)在进行全局搜索的过程中,在“ ”栏目下面的文本框中填入“ 画瓢处 ”,会出现如图 5-4 所示的搜索结果。整个工程提供多个“画瓢处”,请用户自行根据需求“画瓢”。
图5-3 “Search”窗口
图5-4 全局搜索“画瓢处”的结果
下面以新增的热敏传感器为例,阐述用户程序具体需要修改的部分。
根据上面提供的搜索“画瓢处”方法,下面将具体介绍终端用户程序修改的内容。主要工作共三步,分别是在includes.h文件中增加存储温度的变量、在main.c文件中对ADC进行初始化,以及把A/D转换采样值赋给发送结构体的成员变量。
1.程序需改的步骤
(1)在 includes.h 文件中增加存储温度的变量。为了获取热敏传感器采集的温度 A/D转换采样值,考虑到该MCU为16位A/D转换采样,我们添加一个16位无符号整型变量temp来存储温度,在includes.h文件的结构体gUserData中增加一个成员变量。同时也可以在 includes.h 文件中搜索“【画瓢处】-用户自定义添加数据”,确认“画瓢处”的位置;通过在“//【画瓢处】-用户自定义添加数据”的下面一行添加新的注释“//新增温度传感器”,为后续的统一验证做铺垫。由于该操作与后续步骤一致,这里不再重复介绍。
(2)在main.c文件中对ADC进行初始化。考虑到如果需获取温度,就要将温度的模拟量转为数字量,这时需要初始化ADC。考虑到不确定ADC是否进行过初始化操作,因此需要添加用户的初始化函数。这里的ADC初始化函数adc_init对应的参数分别是A通道、单端模式、16位采样精度、硬件滤波次数为32次,具体详情请参考工程中的adc.h文件。在main.c文件中搜索“【画瓢处】-初始化”,确认“画瓢处”的位置,然后添加用户的初始化ADC的代码,如下所示。
(3)在main.c文件中将A/D转换采样值赋给发送结构体的成员变量。在定义成员变量、初始化ADC之后,需要进行A/D转换采样。由5.1节可知,新增的热敏传感器连接在GEC的PTE18引脚上,该引脚具有A/D转换采样功能,使用的是ADC0模块的2号通道,具体引脚功能说明详见附录B.4。在main.c文件中搜索“【画瓢处】-传感器数据获取”,并在此处增加获取当前温度的代码,即可得到当前温度,具体代码实现如下所示。注意,这里的成员变量名temp必须与步骤(1)相同。
为了最终确认终端用户程序所有更新的区域,这里采用 5.2 节开头介绍的搜索步骤,通过搜索关键词“新增温度传感器”可得到如图 5-5 所示的用户程序更改后的全局搜索效果图,共搜索到3处添加内容。至此,终端用户程序更改完毕。建议注释“新增温度传感器”时使用唯一标识,最好由“功能、作者、时间”要素构成,以便在搜索定位时可在工程中找到这一功能的全部修改处。
图5-5 用户程序更改后的全局搜索效果图
为了方便用户更快地进行学习,本代码已放在网上光盘“..\04-Soft\03-Example\CH05_Prg\User_GEC_Basic”中,可供读者参考。
2.编译下载
在完成修改之后,请参考本书附录B.1对程序进行编译。按照3.5.1节介绍的方式下载到GEC中,并查看更改后的Flash配置参数。
接下来完成对US-Monitor的更改。