logo资料库

飞思卡尔K60 单片机三天快速入门.pdf

第1页 / 共206页
第2页 / 共206页
第3页 / 共206页
第4页 / 共206页
第5页 / 共206页
第6页 / 共206页
第7页 / 共206页
第8页 / 共206页
资料共206页,剩余部分请下载后查看
三天入门Cortex-M4——Kinetis系列
前言
目录
Kinetis的启动分析(初学者大概浏览一下即可)
初步入门:初始化函数启动执行顺序
逐步提高:ROM、RAM启动工作原理、ICF 文件讲解
IAR的使用
安装IAR
建立IAR工程
创建工程文件
添加GPIO驱动和点亮LED
IAR工程选项设置
General Options ——Target 设置芯片型号
General Options ——output 设置输出信息
C/C++ Compiler —— Optimizations 优化等级
C/C++ Compiler —— Preprocessor 预处理器
Output Converter —— Output 输出格式转换
Linker —— Config 链接器配置
Linker —— Automatic runtime library s 自动运行库
Linker —— Optimizations 优化
Linker —— List 列表
Debugger —— Setup 仿真器设置
Debugger —— Download 下载设置
J-Link/J-Trace —— Setup jlink下载设置
快速建IAR工程
IAR使用教程
工具栏功能介绍
工作区工程的选定与切换
通过jlink下载并调试
用Jlink解锁Kinetis
使用软件仿真调试
IAR界面风格设计
野火Kinetis核心板实验例程列表
野火K60库的使用
前言
快速开发指南
快速入门:了解野火Kinetis工程
野火Kinetis工程文件讲解
常用的五个头文件
IAR工程文件夹
源代码文件夹
工程模版工作区文件
工程例程工作区文件
快速夊用管脚
中断函数的编写方法
重要变量、函数、宏定义一览表
全局宏定义详解
DEBUG
功能说明
DEBUG_PRINT
定义
功能说明
函数详解
printf
函数原型
功能说明
调用例子
重定向输出
安全检查
断言
枚举
GPIO模块
快速入门:GPIO库使用方法
枚举详解
PORTx
枚举定义
枚举作用
GPIO_CFG
枚举定义
枚举作用
函数详解
gpio_init
函数原型
功能说明
调用例子
gpio_set
函数原型
功能说明
调用例子
gpio_turn
函数原型
功能说明
传递参数
函数返回
调用例子
gpio_get
函数原型
功能说明
传递参数
函数返回
调用例子
宏定义
PTxn_OUT
功能说明
调用例子举例
PTxn_IN
功能说明
调用例子举例
DDRxn
功能说明
调用例子举例
PTx_BYTEn_OUT
功能说明
调用例子举例
PTx_BYTEn_IN
功能说明
调用例子举例
DDRx_BYTEn
功能说明
调用例子举例
PTx_WORDn_OUT
功能说明
调用例子举例
PTx_WORDn_IN
功能说明
调用例子举例
DDRx_WORDn
功能说明
调用例子举例
GPIO_SET
定义
功能说明
传递参数
展开举例
GPIO_TURN
定义
功能说明
传递参数
展开举例
GPIO_Get
定义
功能说明
传递参数
展开举例
GPIO_SET_nbit
定义
功能说明
传递参数
展开举例
GPIO_GET_nbit
定义
功能说明
传递参数
展开举例
GPIO测试例程
51编程风格的GPIO实验输出测试
51编程风格的GPIO实验输入输出测试
GPIO实验简单测试
GPIO实验并行读写测试
GPIO实验综合测试
LED模块
快速入门:LED库使用方法
枚举详解
LEDn
枚举定义
枚举作用
LED_status
枚举定义
枚举作用
函数详解
LED_init
函数原型
功能说明
led
函数原型
功能说明
传递参数
调用例子
LED_turn
函数原型
功能说明
传递参数
调用例子
water_lights
函数原型
功能说明
调用例子
LED_PORT
定义
功能说明
LED_INIT
定义
功能说明
LED_TURN
定义
功能说明
传递参数
展开举例
LED
定义
功能说明
传递参数
展开举例
LED综合测试例程
LED综合测试例程
EXTI外部GPIO中断例程
快速入门:EXTI库使用方法
枚举详解
exti_cfg
枚举定义
枚举作用
exti_init
函数原型
功能说明
传递参数
调用例子
EXTI综合测试例程
UART模块
快速入门:UART库使用方法
枚举详解
UARTn
枚举定义
枚举作用
函数详解
uart_init
函数原型
功能说明
调用例子
uart_getchar
函数原型
功能说明
函数返回
调用例子
uart_pendchar
函数原型
功能说明
传递参数
函数返回
调用例子
uart_query
函数原型
功能说明
传递参数
函数返回
调用例子
uart_putchar
函数原型
功能说明
传递参数
调用例子
uart_sendN
函数原型
功能说明
传递参数
调用例子
uart_sendStr
函数原型
功能说明
传递参数
调用例子
uart_irq_EN
函数原型
功能说明
传递参数
调用例子
uart_irq_DIS
函数原型
功能说明
传递参数
调用例子
宏定义
UART_IRQ_EN
定义
功能说明
传递参数
展开举例
UART_IRQ_DIS
定义
功能说明
传递参数
展开举例
UART综合测试例程
串口发送例程
串口查询接收例程
串口中断接收例程
ADC模块
快速入门:ADC库使用方法
枚举详解
ADCn
枚举定义
枚举作用
ADC_Ch
枚举定义
枚举作用
ADC_nbit
枚举定义
枚举作用
函数详解
adc_init
函数原型
功能说明
调用例子
ad_once
函数原型
功能说明
函数返回
调用例子
ad_mid
函数原型
功能说明
函数返回
调用例子
ad_ave
函数原型
功能说明
函数返回
调用例子
adc_start
函数原型
功能说明
调用例子
adc_stop
函数原型
功能说明
调用例子
ADC综合测试例程
DAC模块
快速入门:DAC库使用方法
枚举详解
DACn
枚举定义
枚举作用
VREF
枚举定义
枚举作用
函数详解
dac_once_init
函数原型
功能说明
调用例子
dac_once_convert
函数原型
功能说明
调用例子
dac_once_get
函数原型
功能说明
函数返回
调用例子
DAC综合测试例程
DAC实验LED测试
DAC实验万用表测试
DAC实验ADC测试
FTM PWM 模块
快速入门:PWM库使用方法
枚举详解
FTMn
枚举定义
枚举作用
CHn
枚举定义
枚举作用
函数详解
FTM_PWM_init
函数原型
功能说明
调用例子
FTM_PWM_Duty
函数原型
功能说明
传递参数
调用例子
FTM_PWM_freq
函数原型
功能说明
传递参数
调用例子
宏定义
FTM_PRECISON
定义
功能说明
PWM综合测试例程
PWM实验示波器简单测试
PWM实验LED测试
FTM 输入捕捉 模块
快速入门:FTM 输入捕捉库使用方法
枚举详解
Input_cfg
枚举定义
枚举作用
函数详解
FTM_Input_init
函数原型
功能说明
调用例子
宏定义
FTM_IRQ_EN
定义
功能说明
传递参数
展开举例
FTM_IRQ_DIS
定义
功能说明
传递参数
展开举例
FTM 输入捕捉中断测试
PIT定时中断模块
快速入门:PIT定时中断库使用方法
枚举详解
PITn
枚举定义
枚举作用
函数详解
pit_init
函数原型
功能说明
调用例子
宏定义
pit_init_ms
定义
功能说明
展开举例
PIT_Flag_Clear
定义
功能说明
展开举例
PIT定时中断测试例程
PWM、输入捕捉、PIT中断综合测试
I2C 模块
快速入门:I2C通信库使用方法
枚举详解
I2Cn
枚举定义
枚举作用
函数详解
I2C_init
函数原型
功能说明
调用例子
I2C_WriteAddr
函数原型
功能说明
调用例子
I2C_ReadAddr
函数原型
功能说明
调用例子
I2C通信实验测试
lptmr低功耗定时器模块
快速入门:lptmr低功耗定时器库使用方法
枚举详解
LPT0_ALTn
枚举定义
枚举作用
LPT_CFG
枚举定义
枚举作用
函数详解
time_delay
函数原型
功能说明
调用例子
lptmr_counter_init
函数原型
功能说明
调用例子
宏定义
lptmr_counter_clean
定义
功能说明
调用例子举例
lptmr低功耗定时器测试例程
LPT脉冲计数中断实验
PIT定时读取LPT脉冲计数实验
DMA模块
快速入门:DMA传输端口数据
枚举详解
DMA_PORTx2BUFF_cfg
枚举定义
枚举作用
DMA_BYTEn
枚举定义
枚举作用
DMA_CHn
枚举定义
枚举作用
函数详解
DMA_PORTx2BUFF_Init
函数原型
功能说明
调用例子
宏定义
DMA_IRQ_EN
定义
功能说明
调用例子举例
DMA_IRQ_DIS
定义
功能说明
DMA_IRQ_CLEAN
定义
功能说明
DMA_EN
定义
功能说明
DMA_DIS
定义
功能说明
DMA测试例程
DMA传输GPIO数据实验
MCG模块超频
快速入门:MCG库使用方法
全局变量详解
mcg_div
结构体定义
结构体作用
系统时钟
变量定义
变量作用
枚举详解
clk_option
枚举定义
枚举作用
函数详解
pll_init
函数原型
功能说明
调用例子
宏定义
MCG_CLK_MHZ
功能说明
举例
最大时钟频率
宏定义
功能说明
举例
系统频率分频因子选项
宏定义
功能说明
举例
快速入门:配置频率
举例说明
uC/OS
DSP数字信号处理单元
CMSIS的介绍及其帮助文档的查找方法
DSP常用函数列表
DSP测试例程
CMSIS库cos、sin测试实验
野火Kinetis开发板问题集
资料在哪里可以下载到?(IAR、Jlink驱动……)
jlink供电到开发板上
关于 Kinetis 时钟
IAR报错找上到头文件
BDM 下载问题
printf使用方法
Kinetis单片机的IO口支上支持5V耐压?
Kinetis最多可以输出多少个频率上同的PWM脉冲波?
kinetis捕捉编码器脉冲计数方法
ADC引脚中带a、b表示的意思
不带有浮点单元能进行浮点运算吗?
Jlink解锁Kinetis
2012 三天入门 Cortex-M4 —Kinetis 系列 野火 Kinetics 开发板教程 最适合初学者入门 Kinetis 的教程 freescale 作者:野火 野火嵌入式开发工作室 2012-3-16
三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 火 三天入门 Cortex-M4——Kinetis 系列 前言 随着技术的发展,单片机型号越来越繁多,入门的难度也逐渐加多,学习周期自 然不断延长。为了让初学者快速入门,减少学习时间,尤其是为了那些参加智能车比 赛而没时间学习深入研究 Kinetis 单片机朋友,我们特意写了 Kinetis 开发板的教程。 力求大大减少初学者的学习时间。 野火 Kinetis 开发教程,主要有 IAR 的使用教程、Kinetis 启动流程讲解、野火 K60 库的调用 三个部分组成。我们不再详细讲解寄存器,而且推荐你们直接调用我 们的函数库。野火 K60 函数库,函数内部会自动计算频率,设置分频,直接调用,减 少你们的后顾之忧,可以加快你们的开发速度。 目前,单片机型号如此之多,而产品的开发所允许给我们的时间越来越少,我们 完全没有必要深入研究寄存器设置,就算你能把寄存器背得滚瓜烂熟,过段时间不去 接触,还是没法记住的。 现在的单片机开发,工程师往往都是利用官方的固件库来进行开发,而不再是靠 自己重新建立自己的函数库进行开发。例如 ST 公司推出的 ST 库,让你可以完全不需 要考虑底层开发而直接开发自己的产品。飞思卡尔公司,在这方便确实让人感到失望, 这也是野火嵌入式工作室要建立自己的野火 Kinetis 库的原因。 野火 K60 库的函数接口,尽量追求简洁明了、通俗易懂,力求初学者见其名就会 用。目前提供了 26 个入门实验:野火 Kinetis 核心板实验例程 ,包含了目前智能车比 赛最常用的几个模块。 想快速上手 K60 单片机吗?野火 Kinetis K60 库,是你最好的选择!!! 我们的口号是:三天入门 Kinetis! 野 火 嵌 入 式 开 发 工 作 室 ~ 1 ~
火 我们喊出这样的口号并不是吹的,已经有两位大三参加智能车的朋友(同一个队) 三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 在使用我们的教程与 k60 库三天时间内就能把 xs128 上的摄像头 0v7725 驱动程序和 舵机控制程序移植到 Kinetis 上跑起来;一位大二的师弟,不到一天的时间就从入门 到搞定摄像头 ov7725 和液晶 LCD 的移植„„你会是下一位吗? 只要我们敢拼,一切皆有可能!!!Nothing is impossible !!! 由于个人能力及时间所限,出错之处,在所难免,欢迎各位指出错误及提出建议: minimcu@foxmail.com ——野火嵌入式开发工作室 2012-3-27 联系我们 Technical support 野 火 嵌 入 式 开 发 工 作 室 ~ 2 ~
三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 火 目录 三天入门Cortex-M4——Kinetis系列...................................................................................................1 前言 ........................................................................................................................................................ 1 目录 ........................................................................................................................................................ 3 Kinetis 的启动分析(初学者大概浏览一下即可) ................................................................................. 6 初步入门:初始化函数启动执行顺序 .........................................................................................................................................6 逐步提高:ROM、RAM 启动工作原理、ICF 文件讲解..........................................................................................................8 IAR 的使用 ............................................................................................................................................ 18 安装 IAR ............................................................................................................................................................................................ 18 建立 IAR 工程 .................................................................................................................................................................................. 30 创建工程文件 ............................................................................................................................................................................ 30 添加 GPIO 驱动和点亮 LED ................................................................................................................................................... 43 IAR 工程选项设置 .................................................................................................................................................................... 46 快速建 IAR 工程.............................................................................................................................................................................. 66 IAR 使用教程 ................................................................................................................................................................................... 68 工具栏功能介绍 ........................................................................................................................................................................ 69 工作区工程的选定与切换 ...................................................................................................................................................... 71 通过 jlink 下载并调试 ............................................................................................................................................................. 72 使用软件仿真调试 ................................................................................................................................................................... 76 IAR 界面风格设计 .................................................................................................................................................................... 79 野火 Kinetis 核心板实验例程列表 ........................................................................................................ 81 野火 K60 库的使用 ............................................................................................................................... 83 前言 .................................................................................................................................................................................................... 83 快速开发指南................................................................................................................................................................................... 84 快速入门:了解野火 Kinetis 工程 ...................................................................................................................................... 84 中断函数的编写方法 ............................................................................................................................................................... 90 重要变量、函数、宏定义一览表......................................................................................................................................... 93 安全检查 ..................................................................................................................................................................................... 96 GPIO 模块........................................................................................................................................................................................100 快速入门:GPIO 库使用方法..............................................................................................................................................100 GPIO 测试例程 ........................................................................................................................................................................109 LED 模块 .........................................................................................................................................................................................114 快速入门:LED 库使用方法 ...............................................................................................................................................114 LED 综合测试例程 .................................................................................................................................................................117 野 火 嵌 入 式 开 发 工 作 室 ~ 3 ~
三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 EXTI 外部 GPIO 中断例程 ..........................................................................................................................................................119 火 快速入门:EXTI 库使用方法 ..............................................................................................................................................119 EXTI 综合测试例程................................................................................................................................................................120 UART 模块 ......................................................................................................................................................................................123 快速入门:UART 库使用方法 ............................................................................................................................................123 UART 综合测试例程 ..............................................................................................................................................................128 ADC 模块 .........................................................................................................................................................................................134 快速入门:ADC 库使用方法 ...............................................................................................................................................134 ADC 综合测试例程.................................................................................................................................................................138 DAC 模块 .........................................................................................................................................................................................140 快速入门:DAC 库使用方法 ...............................................................................................................................................142 DAC 综合测试例程.................................................................................................................................................................144 FTM PWM 模块..............................................................................................................................................................................149 快速入门:PWM 库使用方法 .............................................................................................................................................149 PWM 综合测试例程...............................................................................................................................................................152 FTM 输入捕捉 模块 ......................................................................................................................................................................154 快速入门:FTM 输入捕捉库使用方法 .............................................................................................................................154 FTM 输入捕捉中断测试........................................................................................................................................................156 PIT 定时中断模块.........................................................................................................................................................................158 快速入门:PIT 定时中断库使用方法...............................................................................................................................158 PIT 定时中断测试例程..........................................................................................................................................................160 PWM、输入捕捉、PIT 中断综合测试 .............................................................................................................................161 I2C 模块 ...........................................................................................................................................................................................164 快速入门:I2C 通信库使用方法 ........................................................................................................................................164 I2C 通信实验测试...................................................................................................................................................................165 lptmr 低功耗定时器模块............................................................................................................................................................168 快速入门:lptmr 低功耗定时器库使用方法..................................................................................................................168 lptmr 低功耗定时器测试例程 ............................................................................................................................................170 DMA 模块........................................................................................................................................................................................175 快速入门:DMA 传输端口数据 .........................................................................................................................................175 DMA 测试例程.........................................................................................................................................................................180 MCG 模块超频 ...............................................................................................................................................................................183 快速入门:MCG 库使用方法 ..............................................................................................................................................183 快速入门:配置频率 .............................................................................................................................................................188 uC/O S ...............................................................................................................................................................................................192 DSP 数字信号处理单元...............................................................................................................................................................193 CMSIS 的介绍及其帮助文档的查找方法 .........................................................................................................................193 DSP 常用函数列表 .................................................................................................................................................................197 野 火 嵌 入 式 开 发 工 作 室 ~ 4 ~
三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 DSP 测试例程 ..........................................................................................................................................................................198 火 野火 Kinetis 开发板问题集 ................................................................................................................. 200 资料在哪里可以下载到?(IAR、Jlink 驱动„„) ..........................................................................................................200 jlink 供电到开发板上 ..................................................................................................................................................................200 关于 Kinetis 时钟 ..........................................................................................................................................................................200 IAR 报错找不到头文件 ...............................................................................................................................................................201 BDM 下载问题 ...............................................................................................................................................................................202 printf 使用方法 .............................................................................................................................................................................203 Kinetis 单片机的 IO 口支不支持 5V 耐压? .........................................................................................................................203 Kinetis 最多可以输出多少个频率不同的 PWM 脉冲波? ................................................................................................204 kinetis 捕捉编码器脉冲计数方法 ............................................................................................................................................204 ADC 引脚中带 a、b 表示的意思 ..............................................................................................................................................205 不带有浮点单元能进行浮点运算吗? ....................................................................................................................................205 Jlink 解锁 Kinetis ..........................................................................................................................................................................205 野 火 嵌 入 式 开 发 工 作 室 ~ 5 ~
三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 Kinetis 的启动分析(初学者大概浏览一下即可) 火 初步入门:初始化函数启动执行顺序 中断向量表 ② 上电复位 ① ③ Reset_Handler start 中断向量表在 vectors.c 里定 义,在 vectors.h 文件里,前两 个元素分别映射到 __BOOT_STACK_ADDRESS 和 Reset_Handler(官方自带例程 为__startup),第一个为起始 SP 栈指针、第二个为复位中断 服务函数。 上电复位,系统会查询中断向 量表,把第一个元素的值赋给 SP 寄存器,把第二个值赋给 PC 寄存器,即上电后马上运行 Reset_Handler 函数。 在 start.c 文件里定义,精简后的 代码: void start(void) { wdog_disable();//关闭看门狗 common_startup(); //复制数据段、中断向量表到 ram sysinit(); //时钟初始化 main(); /** main 函数 **/ while(1); //避免停止运行 } 就是初始化系统:关闭看门狗、 复制数据到内存、配置时钟,然 后进入 main 函数 上电复位后第一个运行的函数,在 crt0.s 里用汇编实现。 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. SECTION .noinit : CODE EXPORT Reset_Handler Reset_Handler ;初始化寄存器 MOV r0,#0 MOV r1,#0 MOV r2,#0 MOV r3,#0 MOV r4,#0 MOV r5,#0 MOV r6,#0 MOV r7,#0 MOV r8,#0 MOV r9,#0 MOV r10,#0 MOV r11,#0 MOV r12,#0 CPSIE i ; 关中断 import start BL start ;调用 C 语言 编写的 start 函数 __done B __done END common_startup ⑤ sysinit ⑥ main 复制中断向量表、初始化数据 段、以__ramfunc 声明的子函数 到 RAM 区(对 flash 操作的函数 必须这样) 初始化时钟和初始化串口,精简版代码: void sysinit (void) { core_clk_mhz = pll_init(MCG_CLK_MHZ); trace_clk_init(); //使能跟踪时钟,用于调试 fb_clk_init(); //FlexBus 时钟初始化 uart_init(FIRE_PORT, FIRE_BAUD); //初始化 printf 函数所用到的串口 } 这里就是我们的执行 函数,我们在这里编 写自己的应用文件。 pll_init ④ pll_init 这个函数是用于锁相环超频的,在 mcg.c 里定义。MCG 模块一共有 9 中工作模式,按功 耗高低顺序:PEE、FEE、FEI、PBE、FBE、FBI、BLPE、BLPI、stop。 高频率意味着高功率,为了获取更高的频率,我们这里 pll_init 就是把模式进入 PEE。 野 火 嵌 入 式 开 发 工 作 室 ~ 6 ~
三天入门 Cortex-M4——Kinetis 系列 野火嵌入式开发工作室 火 上电 简单初 始化 初始化 大致思 路 初始化 的整体 思路 wdog_disable 关闭看门狗 清寄存器 common_startup Reset_Handler start sysinit 如果ROM启动,则复 制中断向量表.intvec 到RAM 修改中断向量表地址 为RAM里的地址 复制初始化数据 段.data到RAM 清除RAM中初始化为 0的数据段.bss 把以__ramfunc声明的 子函数 .textrw 复制 到RAM区 初始化锁相环pll_init 初始化printf函数用 到的串口uart_init main 用户任务 启 动 过 程 分 析 步 骤 注:common_startup 函数并没有复制 常量数据 .rodata 、代码.text 。如果是 RAM 启动,代码会直接编译进去 RAM,掉电就会丢失数据。如果是 ROM 启动,就会 复制中断向量表到 RAM,设置中断向量表地址为 RAM 的地址,以加快中断响应速度。 野 火 嵌 入 式 开 发 工 作 室 ~ 7 ~
分享到:
收藏