苏州大学资料KEIL模版

链接:https://pan.baidu.com/s/1e3g--GzvsU-lEIqy8WttGg 
提取码:qwik

通过IO控制小灯亮灭。

//============================================================================
//文件名称:light.h
//功能概要:小灯构件头文件
//版权所有:苏州大学飞思卡尔嵌入式中心(sumcu.suda.edu.cn)
//版本更新:2014-12-10  V1.0
//芯片类型:KEA128
//============================================================================#ifndef _LIGHT_H     //防止重复定义(_LIGHT_H  开头)
#define _LIGHT_H//头文件包含
#include "common.h"    //包含公共要素头文件
#include "gpio.h"      //用到gpio构件//指示灯端口及引脚定义
#define LIGHT_0       (PORTC|0)    //灯0使用的端口/引脚
#define LIGHT_1       (PORTC|1)    //灯1使用的端口/引脚
#define LIGHT_2       (PORTC|2)    //灯2使用的端口/引脚
#define LIGHT_3       (PORTC|3)    //灯3使用的端口/引脚//灯状态宏定义(灯亮、灯暗对应的物理电平由硬件接法决定)
#define LIGHT_ON        1    //灯亮
#define LIGHT_OFF       0    //灯暗//=================接口函数声明===============================================
//============================================================================
//函数名称:light_init
//函数参数:port_pin:(端口号)|(引脚号)(如:(PORTB)|(5) 表示为B口5号脚)
//       state:设定小灯状态。由宏定义。
//函数返回:无
//功能概要:指示灯驱动初始化。
//============================================================================
void light_init(uint_16 port_pin, uint_8 state);//============================================================================
//函数名称:light_control
//函数参数:port_pin:(端口号)|(引脚号)(如:(PORTB)|(5) 表示为B口5号脚)
//       state:设定小灯状态。由宏定义。
//函数返回:无
//功能概要:控制指示灯亮暗。
//============================================================================
void light_control(uint_16 port_pin, uint_8 state);//============================================================================
//函数名称:light_change
//函数参数:port_pin:(端口号)|(引脚号)(如:(PORTB)|(5) 表示为B口5号脚)
//函数返回:无
//功能概要:切换指示灯亮暗。
//============================================================================
void light_change(uint_16 port_pin);#endif    //防止重复定义(_LIGHT_H  结尾)//===========================================================================
//声明:
//(1)我们开发的源代码,在本中心提供的硬件系统测试通过,真诚奉献给社会,不足之处,欢迎指正。
//(2)对于使用非本中心硬件系统的用户,移植代码时,请仔细根据自己的硬件匹配。
//
//苏州大学飞思卡尔嵌入式中心
//技术咨询:0512-65214835  http://sumcu.suda.edu.cn
//===========================================================================
//文件名称:light.c
//功能概要:小灯构件源文件
//版权所有:苏州大学飞思卡尔嵌入式中心(sumcu.suda.edu.cn)
//版本更新:2014-12-10  V1.0
//芯片类型:KEA128
//===========================================================================#include "light.h"//===========================================================================
//函数名称:light_init
//函数参数:port_pin:(端口号)|(引脚号)(如:(PORTB)|(5) 表示为B口5号脚)
//       state:设定小灯状态。由light.h中宏定义。
//函数返回:无
//功能概要:指示灯驱动初始化。
//===========================================================================
void light_init(uint_16 port_pin, uint_8 state)
{gpio_init(port_pin, 1, state);
}//===========================================================================
//函数名称:light_control
//函数参数:port_pin:(端口号)|(引脚号)(如:(PORTB)|(5) 表示为B口5号脚)
//       state:设定小灯状态。由light.h中宏定义。
//函数返回:无
//功能概要:控制指示灯亮暗。
//===========================================================================
void light_control(uint_16 port_pin, uint_8 state)
{gpio_set(port_pin, state);
}//===========================================================================
//函数名称:light_change
//函数参数:port_pin:(端口号)|(引脚号)(如:(PORTB)|(5) 表示为B口5号脚)
//函数返回:无
//功能概要:切换指示灯亮暗。
//===========================================================================
void light_change(uint_16 port_pin)
{gpio_reverse(port_pin);
}

主程序头文件

//============================================================================
//文件名称:includes.h
//功能概要:工程总头文件
//版权所有:苏州大学飞思卡尔嵌入式中心(sumcu.suda.edu.cn)
//版本更新:2014-12-10  V1.0
//芯片类型:KEA128
//============================================================================#ifndef _INCLUDES_H  //防止重复定义(开头)
#define _INCLUDES_H//包含使用到的构件头文件
#include "common.h"
#include "gpio.h"
#include "light.h"//防止全局变量重复声明的前缀处理方法
#ifdef GLOBLE_VAR                 //GLOBLE_VAR在main.c文件中宏定义
#define G_VAR_PREFIX          //main.c文件中使用全局变量不加“extern”前缀
#else
#define G_VAR_PREFIX  extern  //其他文件中使用全局变量自动加“extern”前缀
#endif
//声明全局变量(全局变量类型前一律前缀G_VAR_PREFIX)
G_VAR_PREFIX char g_uart_num;//定义宏常数
#define RUN_COUNTER_MAX   1500000ul   //小灯闪烁频率#endif              //防止重复定义(结尾)

c文件

//说明见工程文件夹下的Doc文件夹内Readme.txt文件
#define GLOBLE_VAR  //只需在main.c中定义一次,用来防止全局变量的重复定义#include "includes.h"int main(void){//1. 声明主函数使用的变量uint_32 mRuncount;     //主循环计数器//2. 关总中断DISABLE_INTERRUPTS;    //关总中断//3. 初始化外设模块light_init(LIGHT_0, LIGHT_OFF);     //初始化灯0light_init(LIGHT_1, LIGHT_OFF);     //初始化灯1light_init(LIGHT_2, LIGHT_OFF);     //初始化灯2light_init(LIGHT_3, LIGHT_OFF);     //初始化灯3//4. main中使用的局部变量初始化mRuncount = 0;            //主循环计数器//5. 全局变量初始化//6. 使能模块中断//7. 开总中断ENABLE_INTERRUPTS;   //开总中断//进入主循环//主循环开始==================================================================for (;;){//运行指示灯闪烁----------------------------------------------------------mRuncount++;               //主循环次数计数器+1if (mRuncount >= RUN_COUNTER_MAX)  //主循环次数计数器大于设定的宏常数{mRuncount = 0;           //主循环次数计数器清零light_change(LIGHT_0);      //灯0(LIGHT_0)状态变化light_change(LIGHT_1);      //灯1(LIGHT_1)状态变化light_change(LIGHT_2);      //灯2(LIGHT_2)状态变化light_change(LIGHT_3);      //灯3(LIGHT_3)状态变化}//以下加入用户程序--------------------------------------------------------}  //主循环end_for//主循环结束==================================================================return 0;
}

恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记3--GPIO模块(二)相关推荐

  1. 恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记4——ADC

    KEA128的ADC有8个寄存器 ADC编程基本步骤: 1.打开ADC模块时钟 2.开启ADC_APCTL1引脚控制寄存器相应引脚的AD功能(即关闭这些引脚的IO功能) 3.配置ADC_SC3寄存器的 ...

  2. 恩智浦+飞思卡尔后你需要知道的十件事

    这两年,半导体行业似乎进入了多事之秋,收购战此起彼伏.就在今年短短的3个月里,半导体行业并/收购案有:Avago Technologies 以 6 亿美金价格收购无线网络公司 Emulex Corp ...

  3. 好程序员web前端分享Nodejs学习笔记之Stream模块

    好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...

  4. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  5. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  6. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  7. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  8. node.js学习笔记5——核心模块1

    node.js学习笔记5--核心模块1 Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端 一: 全局对象 Node. ...

  9. python学习笔记4(模块

    python学习笔记4(模块) 一.模块 1.1 import语句 1.2 __name__属性 1.3 dir()函数 1.4 包 2.1 导入特定模块: 二.输入与输出 2.1 format使用 ...

最新文章

  1. android调试步骤,Android16_Android调试步骤
  2. TabHost.TabSpec中的标签实现图文左右排(默认上下排)
  3. DBeaverEE7.3.0安装教程
  4. effective java ---读书笔记一
  5. Windows端口占用情况?
  6. ie 调用java的时候报错,关于java的applet在网页中打开的时候出错
  7. SAP License:SAP不便解决的问题之七——权限问题
  8. 【文件系统】NTFS、FAT32、exFAT
  9. R语言中ggplot Theme Assist安装使用教程
  10. 【WPS技能】xlsx表格根据单元格的值改变行背景色
  11. 项目邮件[置顶] 失业的程序员(十二):潜意识的智商
  12. 职教云助手手机版_职教云app下载安装_职教云最新版本下载网址
  13. 4.TradingView K线和成交量没有自适应区域显示,ma线显示会错乱,高低不齐(巨坑)
  14. 浅谈IT行业加班有没有价值
  15. 潜渊症LINUX环境部署全流程
  16. 【MATLAB实验】数学实验实验求根问题三种方法、积分画图及古典密码设计(二分法、牛顿法、不动点迭代法)
  17. windows无法访问指定设备 路径或文件(100%解决)
  18. Python高级特性与网络爬虫(二):使用Selenium自动化测试工具爬取一号店商品信息
  19. 小程序毕业设计 基于微信医院预约挂号小程序毕业设计开题报告功能参考
  20. 水下机器人之电池选择

热门文章

  1. 消息队列:生产者/消费者模式
  2. 互联网基础架构之锅的传递及作用域
  3. 使用 Mailgun 配置 Ghost 邮箱
  4. ccd视觉定位教程_什么是CCD视觉定位自动焊锡机器人?
  5. 戴某某说:“内心永无止境的期盼”
  6. 决定系数 均方误差mse_误差分析计算公式及其 matlab 代码实现(mse、mape、rmse等)...
  7. python加上子类的特性_Python 中 Meta Classes详解
  8. 寒假总结 2020.02
  9. 目前最流畅的android手机,盘点国内最流畅的4款安卓手机,堪称用500天不卡顿
  10. 几何画板绘制三棱锥的教程