在线时间954 小时
UID336767
注册时间2011-12-29
NXP金币883
TA的每日心情 | 开心 2018-7-23 21:04 |
---|
签到天数: 103 天 连续签到: 1 天 [LV.6]常住居民II
金牌会员
 
- 积分
- 16864
- 最后登录
- 1970-1-1
|
本帖最后由 lkl0305 于 2015-6-21 22:25 编辑
接着上个帖子:
【FRDM-K64F开发经验】+ 02 + LEDRGB灯点亮
https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&tid=599762&fromuid=336767
上个帖子给大家分享了KDS3.0+KSD1.2+PE下点亮LEDRGB灯。
当然,PE下开发使用现有模块,飞思卡尔给大家都封装好了,非常简单,只需简单几步配置就好了。
但是PE下面有些模块封装的太严实了,可能用起来并不顺手,而且PE自动生成的代码读起来感觉很复杂,不好理解,这可能是软件自动生成代码的弊端吧。
那就想研究一下自己写代码如何?
于是参考了一些实例和帮助文档,今天给大家分享一下KDS3.0+KSD1.2实现,非PE模式如何写程序。
==============================================================================
一、电路
这个在上一个帖子中有,而且大家都应该有了,就不分析了。
二、功能实现
1、还是新建工程了
2、输入工程名称
3、选择开发板型号
4、不选PE模式
5、选择编译器
6、KDS自动生成的工程结构,可以看到比PE下的少了许多
7、在工程上右键选择新建文件夹,新建“Board”文件夹
8、把SDK1.2中的FRDM-K64F实例文件夹下的如下文件拷贝到工程中,可以复制后直接到KDS中粘贴
效果如下图
9、同样的方法新建“Utilities”文件夹
10、拷贝虚拟串口调试的头文件
11、拷贝虚拟串口调试用的c文件
12、拷贝时在KDS中会出现如下提示,点确定
13、最后效果如下图
14、添加include头文件路径,在KDS中工程上右击,在弹出的菜单中选择最后一项属性,出现如图所示。
15、添加Board的路径,由于这个路径在工程中,可以选择Workspace按钮
如图所示
16、同样的方法还有Utilities路径
17、接下来添加的路径没有在工程文件中,我们采用系统绝对路径
18、总共添加了6个自己的路径,如图所示
19、添加ksdk_platform_lib_K64F12库,以便编译链接
20、由于这个ksdk_platform_lib_K64F12库工程在KDS中已经打开了,所以也可以用workspace路径
添加楼效果如图
21、环境配置好了,接下来就是写程序。
在main.c中写入如下代码:
- /*
- * Copyright (c) 2015, Freescale Semiconductor, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * o Redistributions of source code must retain the above copyright notice, this list
- * of conditions and the following disclaimer.
- *
- * o Redistributions in binary form must reproduce the above copyright notice, this
- * list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- #include"fsl_device_registers.h"
- #include "board.h"
- #include "pin_mux.h"
- #include "fsl_clock_manager.h"
- #include "fsl_debug_console.h"
- #include <stdio.h>
- int main(void)
- {
- uint32_t i;
- /* Write your code here */
- CLOCK_SYS_EnablePortClock(PORTA_IDX);
- CLOCK_SYS_EnablePortClock(PORTB_IDX);
- CLOCK_SYS_EnablePortClock(PORTC_IDX);
- CLOCK_SYS_EnablePortClock(PORTE_IDX);
- BOARD_ClockInit();
- dbg_uart_init();
- GPIO_DRV_Init(NULL, ledPins);
- /* This for loop should be replaced. By default this loop allows a single stepping. */
- for (;;) {
- LED1_TOGGLE;
- printf("LED_RED TOGGLE\r\n");
- for (i = 0; i < 5000000; i++);
- LED2_TOGGLE;
- printf("LED_GREEN TOGGLE\r\n");
- for (i = 0; i < 5000000; i++);
- LED3_TOGGLE;
- printf("LED_BLUE TOGGLE\r\n");
- for (i = 0; i < 5000000; i++);
- }
- /* Never leave main */
- return 0;
- }
- ////////////////////////////////////////////////////////////////////////////////
- // EOF
- ////////////////////////////////////////////////////////////////////////////////
复制代码
三、编译调试
接下来就是编译下载调试,这个和上一贴的一模一样,就不复述了
四、演示效果
还有串口显示
|
|