![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
轻松玩转K60
Home---wang
大学正能量!坚持就是胜利!!!!!!!!!!!笑
展开
-
K60学习笔记一:PORT端口
预备C语言知识: 一. 1.#ifndef //#idndef用来判断后面的标识符是否为未定义的。#elseif #endif在嵌入式的系统开发中,某个文件包含几个头文件,而且每个头文件都有可能都定义了同样的宏,使用#ifndef可以有效地防止对该宏的重复定义。此时第一个头文件中定义的宏变为有效定义,其他的头文件中的定义则被忽略。 2.#ifndef指令通常用于防止多次包含同意文件,也就是原创 2016-03-24 22:24:22 · 9779 阅读 · 0 评论 -
K60学习笔记二:PORT中断
1.C预备知识 关于断言: 断言其实就是一个宏定义void assert_failed(char * ,int ); //断言失败执行的函数#if define(DEBUG) //在DEBUG模式下进行调用 #define ASSERT(expr) if(!(expr)) \ assert_failed(_FILE_,_LINE原创 2016-03-29 20:41:49 · 7372 阅读 · 1 评论 -
K60学习笔记三:GPIO口的底层驱动操作带API接口
GPIO 用于普通I/O口的输入输出 C预备知识: const 修饰只读常量 volatile修饰易变量,表示编译器不能进行优化 GPIO模块的编程步骤: 1.设置PORT端口为GPIO复用 2.设置GPIO口的输入输出方向在进行库开发时要有软件分层的思想 。GPIO.cGPIO_MemMapPtr GPIOX[PTX_MAX] = {PTA_BASE_P原创 2016-03-30 20:52:22 · 4307 阅读 · 0 评论 -
K60学习笔记四:按键的多种操作
按键有好几种操作: ADC按键扫描–用的是电阻 GPIO按键扫描: 独立式 矩阵式 循环查询 定时查询 中断响应//初始化KEY对应的管脚PTXn_e KEY_PTxn[KEY_MAX] = {PTC7, PTC8, PTA4, PTC6, PTE26, PTC9, PTC16, PTC17}; //KEY初始化:void key_init(KEY_e原创 2016-03-31 19:34:00 · 4378 阅读 · 2 评论 -
K60学习笔记五:串行通信的时序分析
串行通信的特点:数据以字节为单位,按位的优先级来进行传送 通信涉及通信协议 通信协议按照时间来分:可分为同步通信和异步通信 按照发送数据的位宽来分可分为:串行通信和并行通信 串行通信又分为单工,半双工,全双工 同步通信是面向比特的传输 异步通信是面向字符的传输,需要事先约定波特率 异步通信的空闲格式为1,发送器通过0来表示传送原创 2016-03-31 21:17:04 · 3167 阅读 · 0 评论 -
玩转K60---(一)基于K60 _PORT端口的
C语言知识储备: 1.头文件重复定义:#ifnder _STDIO_H_#define _STDIO_H_#endif说明:#ifnder 用于定义此前未定义的变量因为在一个.c文件中包含几个头文件,而且每个头文件可能都定义了相同的宏,使用#ifnedr可以实现防止对该宏重复定义,此时第一个头文件中的定义变为有效定义,其他头文件的定义则被忽略。原创 2016-03-23 08:17:39 · 1889 阅读 · 0 评论