

全文预览已结束
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程 序 文 档 (三) 1 CAN 通信程序说明通信程序说明通信程序说明通信程序说明 1 程序总体结构概述程序总体结构概述程序总体结构概述程序总体结构概述 程序主要包括:公共参数表模块、公共参数表初始化模块、主函数模块、输入模块、数据处理模块、 输出模块、CAN通信模块、定时模块及RAM模块。 1.1 程序总体结构框图程序总体结构框图程序总体结构框图程序总体结构框图 程序总体结构框图如图1所示。其中,各个模块包含相应的源文件与头文件。 公共参数表模块 主程序初始化 公共参数表初始化模块 循环定时 (启动GPT1定时器) 输入程序模块 数据处理模块 输出程序模块 主函数模块 公共参数表源文件(Parameters.c) 公共参数表头文件(Parameters.h) 公共参数表初始化源文件(Parameters_Initialization.c) 公共参数表初始化头文件(Parameters_Initialization.h) 输入源文件(Input.c) 输入头文件(Input.h) 数据处理源文件(Data_Process.c) 数据处理头文件(Data_Process.h) 输出源文件(Output.c) 输出头文件(Output.h) 定时源文件(Timing.c) 定时头文件(Timing.h) 主函数源文件(MAIN.C) 主函数头文件(MAIN.H) G_CPU_Busy=1 G_CPU_Busy=0 定时模块 注:CAN通信程序中还包含以下非功能模块: RAM模块RAM源文件(NF_RAM.c)与RAM头文件(NF_RAM.h)。 CAN模块CAN源文件(NF_CAN.c)与CAN头文件(NF_CAN.h)。 图1 程序总体结构框图 1.2 程序结构说明程序结构说明程序结构说明程序结构说明 (1) 一般而言,每个C程序通常由头文件和源文件组成。头文件作为一种包含功能函数、数据接口声明的 载体文件,用于保存程序的声明,而源文件用于保存程序的实现。 (2) 一个C程序由一个或多个程序模块组成, 每个程序模块作为一个源文件。 一般将程序的内容分别放在 若干个源文件中,再由若干个源程序文件组成一个C程序, 这样便于分别编写、编译, 提高调试效率。 C程序的源文件以“.c”为后缀。 2 (3) 一个源程序文件由若干个函数以及其他相关内容组成。程序编译时是以源程序文件为单位进行编译 的。 (4) C程序的头文件以“.h”为后缀,其在编译时用#include命令加入到源文件中。 (5) 头文件一般由三部分内容组成:1)头文件开头处的名称、文件内容及版权和版本声明;2)预处理块; 3)函数声明等。在头文件中,用#ifndef / #define / #endif结构产生预处理块,用#include格式来引用库 的头文件。 (6) 头文件的主要作用在于调用库功能,对各个被调用函数给出一个描述,其本身不包含程序的逻辑实现 代码,它只起描述性作用,告诉应用程序通过相应途径寻找相应功能函数的真正逻辑实现代码。用户 程序只需要按照头文件中的接口声明来调用库功能,编译器会从库中提取相应的代码。 (7) 程序结构中分功能模块与非功能模块。非功能模块名称前加前缀NF_。 2 程序初始化配置说明程序初始化配置说明程序初始化配置说明程序初始化配置说明 CAN通信程序中使用了XC164CS型单片机中的并行端口模块(Port)、通用定时器模块(GPT1)、 TwinCAN通信模块(CAN)以及外围总线控制器模块(EBC)。编写程序之前应将以上模块用DAvE软件进行 相关配置,配置好后系统会自动在Keil 166中生成相关模块的头文件与源文件。 2.1 START_V2.A66 启动文件启动文件启动文件启动文件 启动文件START_V2.A66包含目标板启动代码,可在每个Project中加入这个文件,只要系统复位则该 文件立即执行。该启动文件功能包括: ? 定义系统及用户堆栈 ? 定义启动代码 ? CPU配置 ? 外围配置 ? 定义复位配置寄存器 ? PLL锁相环配置 ? FOCON频率输出信号配置 ? 外部总线配置 2.2 并行端口模块并行端口模块并行端口模块并行端口模块 并行端口模块包含并行端口源文件(IO.C)与并行端口头文件(IO.H)。 2.2.1 并行端口源文件并行端口源文件并行端口源文件并行端口源文件 并行端口源文件包含并行端口初始化函数: 函数原型: void IO_vInit(void); 函数参数: void 函数返回值类型: void 函数说明:并行端口初始化函数作用是对并行端口相关功能寄存器进行初始化。 2.2.2 并行端口头文件并行端口头文件并行端口头文件并行端口头文件 并行端口头文件包含并行端口引脚名称的宏定义以及并行端口初始化函数的声明。 2.3 通用定时器模块通用定时器模块通用定时器模块通用定时器模块 通用定时器模块包含通用定时器源文件(GPT1.C)与通用定时器头文件(GPT1.H)。 2.3.1 通用定时器源文件通用定时器源文件通用定时器源文件通用定时器源文件 通用定时器源文件包含通用定时器初始化函数以及通用定时器中断函数。 (1) 通用定时器初始化函数 函数原型: void GPT1_vInit(void); 函数参数: void 函数返回值类型:void 3 函数说明:通用定时器初始化函数作用是对通用定时器的相关功能寄存器进行初始化。 (2) 通用定时器中断函数 函数原型: void GPT1_viTmr3(void); 函数参数: void 函数返回值类型:void 函数说明: 1) 通用定时器中断函数作用是由用户编写通用定时器中断服务函数。 2) 其内容包括:关闭GPT1,然后将GPT1标志位(G_GPT1_Flag)设置为1。 2.3.2 通用定时器头文件通用定时器头文件通用定时器头文件通用定时器头文件 通用定时器头文件包含通用定时器相关参数的宏定义、通用定时器初始化函数声明以及中断向量的 宏定义。 2.4 TwinCAN通信模块通信模块通信模块通信模块 CAN通信模块包含CAN通信源文件与CAN通信头文件。 2.4.1 CAN通信源文件通信源文件通信源文件通信源文件 CAN通信源文件包含CAN报文宏定义、CAN通信初始化函数及CAN通信数据发送函数。 (1) CAN通信初始化函数 函数原型: void CAN_vInit(void); 函数参数: void 函数返回值类型: void 函数说明:CAN通信初始化函数作用是对CAN通信的相关寄存器进行初始化。 (2) CAN通信数据发送函数 函数原型: void CAN_vTransmit(unsigned char ubObjNr); 函数参数: unsigned char ubObjNr: 报文对象号 函数返回值类型: void 函数说明:报文发送函数作用是触发CAN控制器,发送所选报文。 2.4.2 CAN通信头文件通信头文件通信头文件通信头文件 CAN 通信头文件包含:CAN的初始化配置以及与CAN通信相关的初始化函数的声明。 说明:用户进行CAN通信的DAvE配置时应注意CAN通信的发送与接收应分开配置。 3 公共参数表模块说明公共参数表模块说明公共参数表模块说明公共参数表模块说明 3.1 公共参数表源文件公共参数表源文件公共参数表源文件公共参数表源文件 公共参数表源文件包含:公共参数的宏定义、公共变量与数组的定义以及标志位定义。 说明:公共参数表包含所有模块文件中用到的参数宏定义、变量与数组以及标志位。 3.1.1 公共参数宏定义公共参数宏定义公共参数宏定义公共参数宏定义 公共参数宏定义格式: #define GD_宏名 宏值 说明:#define是宏定义命令。 3.1.2 公共变量公共变量公共变量公共变量、数组数组数组数组、标志位以及使能标志位定义标志位以及使能标志位定义标志位以及使能标志位定义标志位以及使能标志位定义 公共变量格式: 公共变量类型 GV_类型_公共变量名; 公共数组格式: 公共数组类型 GA_类型_公共数组名数组长度; 标志位格式: 标志位类型 G_标志位名称_Flag; 各功能函数使能标志位格式: 使能标志位类型 G_使能标志位名称_Function_Enable; 3.2 公共参数表头文件公共参数表头文件公共参数表头文件公共参数表头文件 公共参数表头文件包含:公共参数的宏定义、公共变量与数组的定义以及标志位定义。 公共变量格式: extern公共变量类型 GV_类型_公共变量名; 4 公共数组格式: extern公共数组类型 GA_类型_公共数组名数组长度; 标志位格式: extern标志位类型 G_标志位名称_Flag; 各功能函数使能标志位格式: extern使能标志位类型 G_使能标志位名称_Function _Enable; 说明:模块要使用另一模块定义的变量时,必须将该变量定义为extern型。其他模块文件中若要使用 该公共变量,只要使用“文件包含”命令调用公共参数表头文件即可。 4 公共参数表初始化模块说明公共参数表初始化模块说明公共参数表初始化模块说明公共参数表初始化模块说明 公共参数表初始化模块包含公共参数表初始化源文件与公共参数表初始化头文件。 4.1 公共参数表初始化源文件公共参数表初始化源文件公共参数表初始化源文件公共参数表初始化源文件 公共参数表初始化源文件结构框图如图2所示。 #include MAIN.H 公共参数表初始化 函数定义 源文件入口 结 束 各功能函数使能初始化函数调用 函数返回值标志位设置 公共参数表初始化函数入口 返回主程序 CPU忙/闲标志位设置 串行通信波特率配置函数调用 串行通信接收准备函数调用 图2 公共参数表初始化源文件结构框图 图3 公共参数表初始化函数结构框图 4.1.1 公共参数表初始化函数公共参数表初始化函数公共参数表初始化函数公共参数表初始化函数 函数原型: void F_MAIN_Parameters_Initialization(void); 函数参数: void 函数返回值类型: void 函数说明:公共参数表初始化函数由用户编写,主要包括程序中相关寄存器控制位的初始化操作、 公共变量赋初值、设置标志位、通信波特率设置等。 公共参数表初始化函数的结构框图如图3所示,其主要包含以下函数: (1) 各功能函数使能初始化函数 函数原型: void F_Function_Enable_vInit(void); 函数参数: void 5 函数返回值类型:void 函数说明: 1) 各功能函数使能初始化函数作用是对各功能函数使能标志位进行初始化。 2) 当不使用某一功能函数时,应禁止其使能标志位,以提高程序运行效率。 4.2 公共参数表初始化头文件公共参数表初始化头文件公共参数表初始化头文件公共参数表初始化头文件 公共参数表初始化头文件包含:公共参数表初始化函数的声明。 说明:其他模块文件中若要使用公共参数表初始化函数,只要使用“文件包含”命令调用公共参数表 初始化头文件即可,无需重新声明该函数。 5 主函数模块说明主函数模块说明主函数模块说明主函数模块说明 主函数模块包含主函数源文件与主函数头文件。 5.1 主函数源文件主函数源文件主函数源文件主函数源文件 主函数源文件结构框图如图4所示。 #include MAIN.H 主程序初始化函数 定义 主程序寄存器初始 化函数定义 主程序函数定义 源文件入口 结 束 主程序初始化函数调用 公共参数表初始化函数调用 程序循环开始 (启动定时器GPT1) 输入函数调用 主程序函数入口 数据处理函数调用 输出函数调用 G_CPU_Busy=1 G_CPU_Busy=0 定时器50ms触发定时中断 定时函数调用 GPT1定时中断函数入口 GPT1定时器停止函数调用 G_GPT1_Flag=1 中断返回 图4 主函数源文件结构框图 图5 主程序函数结构框图 5.1.1 主程序初始化函数主程序初始化函数主程序初始化函数主程序初始化函数 函数原型: void MAIN_vInit(void); 函数参数: void 函数返回值类型: void 函数说明:主程序初始化函数由系统生成,主要包括相关寄存器的初始化操作以及XC164CS单片 6 机各功能模块的初始化函数。 5.1.2 主程序寄存器初始化函数主程序寄存器初始化函数主程序寄存器初始化函数主程序寄存器初始化函数 函数原型: void MAIN_vUnlockProtecReg(void); 函数参数: void 函数返回值类型: void 函数说明:主程序寄存器初始化函数由系统生成,主要包括相关主程序寄存器的初始化操作。 5.1.3 主程序函数主程序函数主程序函数主程序函数 函数原型: void main(void); 函数参数: void 函数返回值类型: void 函数说明: 1) 主程序函数由用户自己编写,完成主程序初始化以及主程序的总体流程。 2) C程序是由函数构成的。一个C源程序至少且仅包含一个main函数,也可以包含一个main 函数和若干个其他函数。因此函数是C程序的基本单位。 3) 一个C程序总是从main函数开始执行的。 主程序函数结构框图如图5所示,其主要包含以下函数: (1) 主程序初始化函数(详见5.1.1) (2) 公共参数表初始化函数 函数原型: void F_MAIN_Parameters_Initialization(void); 函数参数: void 函数返回值类型:void 函数说明:公共参数表初始化函数作用是对公共宏定义、公共变量、标志位以及通信参数等进 行初始化。 (3) 定时器GPT1启动函数 函数原型: void GPT1_vStartTmr(void); 函数参数: void 函数返回值类型:void 函数说明:定时器GPT1启动函数作用是启动定时器GPT1。 (4) 输入函数 函数原型: void F_MAIN_Input(void); 函数参数: void 函数返回值类型:void 函数说明:输入函数作用是从外界读入数据。 (4) 数据处理函数 函数原型: void F_MAIN_Data_Process(void); 函数参数: void 函数返回值类型:void 函数说明:数据处理函数作用是对数据进行处理,并包含相关用户控制指令。 (5) 输出函数 函数原型: void F_MAIN_Output(void); 函数参数: void 函数返回值类型:void 函数说明:输出函数作用是将数据进行输出,以控制相关执行机构运行。 (6) 定时函数 函数原型: void F_MAIN_Timing(void); 函数参数: void 7 函数返回值类型:void 函数说明:定时函数作用是确定主程序函数的循环定时时间以及程序中的软件定时。 说明:以上函数都为无参函数,在调用无参函数时,主调函数不向被调用函数传递数据。无参函数一般用 来执行指定的一组操作。 5.2 主函数头文件主函数头文件主函数头文件主函数头文件 主函数头文件主要包含编译系统自动生成的相关模块配置参数、宏定义以及“文件包含”命令。 “文 件包含” 命令将DAvE配置生成的头文件和后续程序中各模块程序的头文件包含进来, 方便以后程序调用。 主函数头文件调用命令为: #include MAIN.H 说明: “文件包含”是指一个源文件可以将另一个文件的内容包含进来。C语言提供了#include命令来实现 “文件包含”的操作。其一般形式为: #include “文件名”或 6 输入模块说明输入模块说明输入模块说明输入模块说明 输入模块包含输入源文件与输入头文件。 6.1 输入源文件输入源文件输入源文件输入源文件 输入源文件结构框图如图6所示。 #include MAIN.H 本文件函数声明、 参数宏定义 输入程序函数定 义、本文件函数定 义 源文件入口 结 束 输入程序函数入口 返回主程序 G_CAN_Function_Enable=1? G_RAM_Function_Enable=1? CAN输入函数调用 Y N 读RAM函数调用 Y N 图6 输入源文件结构框图 图7 输入程序函数结构框图 6.1.1 输入程序函数输入程序函数输入程序函数输入程序函数 函数原型: void F_MAIN_Input(void); 函数参数: void 函数返回值类型: void 函数说明:输入程序函数作用是将外界的输入信号读入单片机(外界输入信号包括:CAN通信输入 信号以及读RAM信号)。 8 输入程序函数结构框图如图7所示,其主要包含以下函数: (1) CAN输入函数 函数原型: bit F_Input_CAN(void); 函数参数: void 函数返回值类型:bit 函数说明: CAN输入函数作用是接收CAN通信的数据信息,并返回标志位。 (2) 读RAM函数 函数原型: void F_Read_RAM(unsigned char l,unsigned long address,unsigned char *data_array); 函数参数: unsigned char l: 从RAM中读到数据数组的长度 unsigned long address: 从RAM中读取数据的首地址 unsigned char *data_array:指向RAM中读到数据数组的首地址的指针 函数返回值类型:void 函数说明:读RAM函数作用是对RAM进行读操作,读操作结束后,调用释放RAM函数,释 放对外部函数的占用。 说明:本文件中使用的函数的声明与使用的宏定义仅适用于输入源文件,其他模块文件无法调用。 6.2 输入头文件输入头文件输入头文件输入头文件 输入头文件包含:输入程序函数的声明。 7 数据处理模块说明数据处理模块说明数据处理模块说明数据处理模块说明 数据处理模块包含数据处理源文件与数据处理头文件。 7.1 数据处理源文件数据处理源文件数据处理源文件数据处理源文件 数据处理源文件结构框图如图8所示。 #include MAIN.H 本文件函数声明、 参数定义 数据处理函数定 义、本文件函数定 义 源文件入口 结 束 数据处理函数入口 返回主程序 G_CAN_Function_Enable=1? G_RAM_Function_Enable=1? CAN通信数据处理函数调用 Y N RAM数据处理函数调用 Y N 图8 数据处理源文件结构框图 图9 数据处理函数结构框图 9 说明:数据处理模块中的各数据处理函数由用户根据具体情况进行编写。 7.1.1 数据处理函数数据处理函数数据处理函数数据处理函数 函数原型: void F_MAIN_Data_Process(void); 函数参数: void 函数返回值类型: void 函数说明:数据处理函数作用是对输入源文件中的输入信号进行处理,方便输出源文件进行调用。 此外,用户可在数据处理函数中添加相关控制指令以实现具体的控制要求。 数据处理函数结构框图如图9所示,其主要包含以下函数: (1) CAN通信数据处理函数 函数原型: void F_Process_CAN(void); 函数参数: void 函数返回值类型:void 函数说明:CAN通信数据处理函数作用是对CAN接收的数据进行处理。 (2) RAM数据处理函数 函数原型: void F_Process_RAM (void); 函数参数: void 函数返回值类型:void 函数说明:RAM数据处理函数作用是对RAM中的数据进行处理。 说明:本文件中使用的函数的声明仅适用于数据处理源文件,其他模块文件无法调用。 7.2 数据处理头文件数据处理头文件数据处理头文件数据处理头文件 数据处理头文件包含:数据处理函数的声明。 8 输出模块说明输出模块说明输出模块说明输出模块说明 输出模块包含输出源文件与输出头文件。 8.1 输出源文件输出源文件输出源文件输出源文件 输出源文件结构框图如图10所示。 8.1.1 输出程序函数输出程序函数输出程序函数输出程序函数 函数原型: void F_MAIN_Output(void); 函数参数: void 函数返回值类型: void 函数说明:输出程序函数作用是将数据处理源文件中处理的数据输出,作为控制信号驱动执行机构 运行。 输出程序函数结构框图如图11所示,其主要包含以下函数: (1) CAN输出函数 函数原型: void F_Output_CAN(void); 函数参数: void 函数返回值类型:void 函数说明:CAN输出函数作用是发送CAN通信的数据信息。 (2) 写RAM函数 函数原型: void F_Write_RAM(unsigned char data_array ,unsigned char l,unsigned long address); 函数参数: unsigned char data_array : 写RAM数据数组的首地址 unsigned char l: 数据数组长度 unsigned long address: RAM中存放数据的首地址 10 函数返回值类型:void 函数说明:写RAM函数作用是对RAM进行写操作。 说明:本文件中使用的函数的声明与使用的宏定义仅适用于输出源文件,其他模块文件无法调用。 8.2 输出头文件输出头文件输出头文件输出头文件 输出头文件包含:输出程序函数的声明。 #include MAIN.H 本文件函数声明、 参数宏定义 输出程序函数定 义、本文件函数定 义 源文件入口 结 束 输出程序函数入口 返回主程序 (G_CAN_Function_Enable & G_CAN_Sending_Flag)=1? G_RAM_Function_Enable=1? CAN输出函数调用 Y N 写RAM函数调用 Y N 图10 输出源文件结构框图 图11 输出程序函数结构框图 9 CAN 通信模块说明通信模块说明通信模块说明通信模块说明 CAN通信模块包含CAN通信源文件与CAN通信头文件。 9.1 CAN通信源文件通信源文件通信源文件通信源文件 CAN通信源文件结构框图如图12所示。 说明:本文件中使用的函数的声明与使用的变量定义仅适用于CAN通信源文件,其他模块文件无法调用。 9.1.1 CAN输入函数输入函数输入函数输入函数 函数原型: void F_Input_CAN(void); 函数参数: void 函数返回值类型:void 函数说明: CAN输入函数作用是接收CAN通信的数据信息。其结构框图如图13所示。 9.1.2 CAN输出函数输出函数输出函数输出函数 函数原型: void F_Output_CAN(void); 函数参数: void 函数返回值类型:void 函数说明:CAN输出函数作用是发送CAN通信的数据信息。 9.2 CAN通信头文件通信头文件通信头文件通信头文件 CAN通信头文件包含:CAN输入函数、CAN输出函数的声明。 11 #include MAIN.H CAN输入函数定 义、CAN输出函数 定义 源文件入口 结 束 CAN输入函数入口 返回输入程序函数 循环等待 是否收到数据? Y N 进行CAN数据读取 图12 CAN通信源文件结构框图 图13 CAN输入函数结构框图 10 定时模块说明定时模块说明定时模块说明定时模块说明 定时模块包含定时源文件与定时头文件。 10.1 定时源文件定时源文件定时源文件定时源文件 定时源文件结构框图如图14所示。 10.1.1 定时函数定时函数定时函数定时函数 函数原型: void F_MAIN_Timing(void); 函数参数: void 函数返回值类型: void 函数说明:定时函数作用是对GPT1定时器标志位进行判断,确定程序是否继续进行循环。其结构 框图如图15所示。 #include MAIN.H 定时函数定义、小 延时函数定义、定 时器GPT1启动函数 定义以及定时器 GPT1停止函数定义 源文件入口 结 束 G_GPT1_Flag=0 定时函数入口 返回主程序函数 G_GPT1_Flag=0? Y N 图14 定时源文件结构框图 图15 定时函数结构框图 12 10.1.2 小延时函数小延时函数小延时函数小延时函数 函数原型: void F_Delay(unsigned char i); 函数参数: unsigned char I 函数返回值类型: void 函数说明:小延时函数作用是在程序中读写端口、数据发送/接收等操作后插入延时程序,提高程序 的可靠性(注:小延时函数定时不精确)。 10.1.3 定时器定时器定时器定时器GPT1启动函数启动函数启动函数启动函数 函数原型: void GPT1_vStartTmr(void); 函数参数: void 函数返回值类型: void 函数说明:定时器GPT1启动函数作用是启动定时器GPT1。 10.1.4 定时器定时器定时器定时器GPT1停止函数停止函数停止函数停止函数 函数原型: void GPT1_vStopTmr(void); 函数参数: void 函数返回值类型: void 函数说明:定时器GPT1停止函数作用是停止定时器GPT1。 10.2 定时头文件定时头文件定时头文件定时头文件 定时头文件包含:定时函数、小延时函数、定时器GPT1启动函数以及定时器GPT1停止函数的声 明。 11 RAM 模块说明模块说明模块说明模块说明 RAM模块包含RAM源文件与RAM头文件。 11.1 RAM源文件源文件源文件源文件 RAM源文件结构框图如图16所示。 #include MAIN.H 与RAM相关的函数 声明 源文件入口 结 束 与RAM相关的函数 定义 申请读写RAM 读RAM 读RAM函数入口 返回输入程序函数 释放对RAM的占用 G_RAM_Reading_Apply_Flag=1? Y N 申请读写RAM 写RAM 写RAM函数入口 返回输出程序函数 释放对RAM的占用 G_RAM_Writing_Apply_Flag=1? Y N 图16 RAM源文件结构框图 图17 读RAM函数结构框图 图18 写RAM函数结构框图 11.1.1 读读读读RAM函数函数函数函数 函数原型: void F_Read_RAM(unsigned char l,unsigned long address,unsigned char *data_array); 13 函数参数: unsigned char l: 从RAM中读到数据数组的长度 unsigned long address: 从RAM中读取数据的首地址 unsigned char *data_array:指向RAM中读到数据数组的首地址的指针 函数返回值类型: void 函数说明:读RAM函数作用是对RAM进行读操作,读操作结束后,调用释放RAM函数,释放对 外部函数的占用。其结构框图如图17所示。 11.1.2 写写写写RAM函数函数函数函数 函数原型: void F_Write_RAM(unsigned char data_array ,unsigned char l,unsigned long address); 函数参数: unsigned char data_array :写RAM数据数组的首地址 unsigned char l: 数据数组长度 unsigned long address: RAM中存放数据的首地址 函数返回值类型: void 函数说明:写RAM函数作用是对RAM进行写操作。其结构框图如图18所示。 11.1.3 申请申请申请申请RAM函数函数函数函数 函数原型: bit F_ Apply_RAM(void); 函数参数: void 函数返回值类型: bit 函数说明:申请RAM函数作用是对RAM进行控制权申请。其结构框图如图19所示。 申请RAM控制权 申请RAM函数入口 返回 使能HC245,并返 回标志位 是否获得RAM 控制权? 暂停申请RAM N 延时等待 重新申请RAM Y 申请次数10? Y N 禁止使能HC245 释放RAM函数入口 返回 释放对外部RAM的控制权 图19 申请RAM函数结构框图 图20 释放RAM函数结构框图 11.1.4 释放释放释放释放RAM函数函数函数函数 函数原型: void F_Free_RAM(void);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草牧场承包经营权流转与农业生态补偿合同
- 汽修推广活动方案
- 模特培训活动方案
- 毕业晚会创意活动方案
- 沙龙旺季活动方案
- 河南戏曲活动方案
- 法治同行活动方案
- 桑拿活动策划方案
- 毕节小公司年会策划方案
- 橱柜促销活动方案
- 食品安全地方标准 预制菜生产卫生规范
- 亮化工程竣工验收报告
- 【新】2019-2020成都市石室中学北湖校区初升高自主招生数学【4套】模拟试卷【含解析】
- 《文明礼貌我最棒》班会课件
- 《出生医学证明》单亲母亲情况声明
- PCS-915母差保护装置介绍
- 第一套路面工程考试试题及答案
- GB∕T 22590-2021 轧钢加热炉用耐火浇注料
- 研发部程序文件bom管理
- 大件运输管理制度
- 结构化思维PPT通用课件
评论
0/150
提交评论