查看: 9469|回复: 23

[原创] 【FRDM-K64F开发经验】+ 03 + LEDRGB灯点亮(非PE实现)

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16864
    最后登录
    1970-1-1
    发表于 2015-6-21 22:20:45 | 显示全部楼层 |阅读模式
    本帖最后由 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、还是新建工程了
    1301.jpg
    2、输入工程名称
    1302.jpg
    3、选择开发板型号
    1303.jpg
    4、不选PE模式
    1304.jpg
    5、选择编译器
    1305.jpg
    6、KDS自动生成的工程结构,可以看到比PE下的少了许多
    1306.jpg
    7、在工程上右键选择新建文件夹,新建“Board”文件夹
    1307.jpg
    8、把SDK1.2中的FRDM-K64F实例文件夹下的如下文件拷贝到工程中,可以复制后直接到KDS中粘贴
    1308.jpg
    效果如下图
    1309.jpg
    9、同样的方法新建“Utilities”文件夹
    1310.jpg
    10、拷贝虚拟串口调试的头文件
    1311.jpg
    11、拷贝虚拟串口调试用的c文件
    1312.jpg
    12、拷贝时在KDS中会出现如下提示,点确定
    1313.jpg
    13、最后效果如下图
    1314.jpg
    14、添加include头文件路径,在KDS中工程上右击,在弹出的菜单中选择最后一项属性,出现如图所示。
    1315.jpg
    15、添加Board的路径,由于这个路径在工程中,可以选择Workspace按钮
    1316.jpg
    如图所示
    1317.jpg
    16、同样的方法还有Utilities路径
    1318.jpg
    17、接下来添加的路径没有在工程文件中,我们采用系统绝对路径
    1319.jpg
    18、总共添加了6个自己的路径,如图所示
    1320.jpg
    19、添加ksdk_platform_lib_K64F12库,以便编译链接
    1322.jpg
    20、由于这个ksdk_platform_lib_K64F12库工程在KDS中已经打开了,所以也可以用workspace路径
    1321.jpg
    添加楼效果如图
    1323.jpg
    21、环境配置好了,接下来就是写程序。
    在main.c中写入如下代码:


    1. /*
    2. * Copyright (c) 2015, Freescale Semiconductor, Inc.
    3. * All rights reserved.
    4. *
    5. * Redistribution and use in source and binary forms, with or without modification,
    6. * are permitted provided that the following conditions are met:
    7. *
    8. * o Redistributions of source code must retain the above copyright notice, this list
    9. *   of conditions and the following disclaimer.
    10. *
    11. * o Redistributions in binary form must reproduce the above copyright notice, this
    12. *   list of conditions and the following disclaimer in the documentation and/or
    13. *   other materials provided with the distribution.
    14. *
    15. * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
    16. *   contributors may be used to endorse or promote products derived from this
    17. *   software without specific prior written permission.
    18. *
    19. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    20. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    21. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    22. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
    23. * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    24. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    25. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
    26. * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    27. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    28. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    29. */

    30. #include"fsl_device_registers.h"
    31. #include "board.h"
    32. #include "pin_mux.h"
    33. #include "fsl_clock_manager.h"
    34. #include "fsl_debug_console.h"
    35. #include <stdio.h>

    36. int main(void)
    37. {
    38.     uint32_t i;

    39.     /* Write your code here */
    40.     CLOCK_SYS_EnablePortClock(PORTA_IDX);
    41.     CLOCK_SYS_EnablePortClock(PORTB_IDX);
    42.     CLOCK_SYS_EnablePortClock(PORTC_IDX);
    43.     CLOCK_SYS_EnablePortClock(PORTE_IDX);

    44.     BOARD_ClockInit();
    45.     dbg_uart_init();

    46.     GPIO_DRV_Init(NULL, ledPins);

    47.     /* This for loop should be replaced. By default this loop allows a single stepping. */
    48.     for (;;) {
    49.         LED1_TOGGLE;
    50.         printf("LED_RED TOGGLE\r\n");
    51.         for (i = 0; i < 5000000; i++);

    52.         LED2_TOGGLE;
    53.         printf("LED_GREEN TOGGLE\r\n");
    54.         for (i = 0; i < 5000000; i++);

    55.         LED3_TOGGLE;
    56.         printf("LED_BLUE TOGGLE\r\n");
    57.         for (i = 0; i < 5000000; i++);
    58.     }
    59.     /* Never leave main */
    60.     return 0;
    61. }
    62. ////////////////////////////////////////////////////////////////////////////////
    63. // EOF
    64. ////////////////////////////////////////////////////////////////////////////////
    复制代码

    三、编译调试
    接下来就是编译下载调试,这个和上一贴的一模一样,就不复述了

    四、演示效果
    RGB.gif

    还有串口显示
    1326.jpg

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-6-22 00:02:52 | 显示全部楼层
    我想知道这个主函数用到的代码是什么库的?官方写的那个SDK库吗?
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16864
    最后登录
    1970-1-1
     楼主| 发表于 2015-6-22 00:28:24 | 显示全部楼层
    kingsings 发表于 2015-6-22 00:02
    我想知道这个主函数用到的代码是什么库的?官方写的那个SDK库吗?

    是官方给的sdk库,SDK1.2
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    42

    主题

    340

    帖子

    0

    高级会员

    Rank: 4

    积分
    722
    最后登录
    2016-1-9
    发表于 2015-6-22 13:13:21 | 显示全部楼层
    学习了
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-6-22 14:09:38 | 显示全部楼层
    lkl0305 发表于 2015-6-22 00:28
    是官方给的sdk库,SDK1.2

    这个库好用吗?好学吗?
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16864
    最后登录
    1970-1-1
     楼主| 发表于 2015-6-22 14:44:19 | 显示全部楼层
    kingsings 发表于 2015-6-22 14:09
    这个库好用吗?好学吗?

    官方的库,结构比较清楚,还有库的帮助,不过是英文的。慢慢来,我也是刚到门口,还没入门哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    317

    帖子

    0

    高级会员

    Rank: 4

    积分
    862
    最后登录
    1970-1-1
    发表于 2015-6-22 18:10:12 | 显示全部楼层
    谢谢分享
    回复

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-6-23 10:53:34 | 显示全部楼层
    非常感谢你关于Kinetis的经验分享!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30

    主题

    487

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1218
    最后登录
    2020-8-18
    发表于 2015-6-23 15:31:26 来自手机 | 显示全部楼层
    楼主给力!!!正好想尝试下sdk  之前用mbed尝试了下还不过瘾!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16864
    最后登录
    1970-1-1
     楼主| 发表于 2015-6-23 15:34:33 | 显示全部楼层
    shadow丶 发表于 2015-6-23 15:31
    楼主给力!!!正好想尝试下sdk  之前用mbed尝试了下还不过瘾!!

    哈哈,那这个正合适,灵活性比较大
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 15:28 , Processed in 0.113980 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表