查看: 11712|回复: 27

[分享] 【FRDM-K64F试用】呕心沥血终于完成自己第一个飞思卡尔程序

[复制链接]
  • TA的每日心情
    擦汗
    2016-12-4 23:20
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    9

    主题

    573

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1785
    最后登录
    2017-3-3
    发表于 2015-11-9 00:59:27 | 显示全部楼层 |阅读模式
    本帖最后由 风子 于 2015-11-18 10:47 编辑

    最近倒腾ST的板子,把K64给搁下了,实在有点对不起它,于是决定今天宠幸她一下。


    事实上这东西之前已经着实花了我不少时间,作为一个新手,觉得实在是不容易,倒腾好几个晚上到深夜,都没有什么进展,感觉比我当初学ST的时候难太多了,,,。


    不得不吐槽FSL的那个KSDK库,什么乱七八糟的玩意,文件组织,函数代码,简直无法忍受,各种乱七八糟,我先后尝试过3次自己把文件复制出来建立工程模板,花了很多时间,最后都以失败告终。。。最后还是不得不编译好lib库直接使用,,,即使是这样,也试了两次才成功,,不知道是不是我太笨了,,反正,各种不顺利。


    最后在经历了多次失败之后,终于成功建立了工程,算是搭建好了开发环境,鉴于新手,对飞思卡尔芯片和这个库都不熟悉,就用写好的例程来修改了,于是使用了KSDK_1.2.0\examples\frdmk64f\driver_examples\gpio这个例子,把相关的文件和board文件通通都复制过来,修改,添加代码:



    1.     // Define gpio output pin config structure LED1.
    2.     gpio_output_pin_user_config_t outputPin[] = {
    3.         {
    4.             .pinName              = kGpioLED1,
    5.             .config.outputLogic   = 0,
    6. #if FSL_FEATURE_PORT_HAS_SLEW_RATE
    7.             .config.slewRate      = kPortFastSlewRate,
    8. #endif
    9. #if FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
    10.             .config.driveStrength = kPortHighDriveStrength,
    11. #endif
    12.         },
    13.         
    14.                                         {
    15.             .pinName              = kGpioLED2,
    16.             .config.outputLogic   = 0,
    17. #if FSL_FEATURE_PORT_HAS_SLEW_RATE
    18.             .config.slewRate      = kPortFastSlewRate,
    19. #endif
    20. #if FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
    21.             .config.driveStrength = kPortHighDriveStrength,
    22. #endif
    23.         },        {
    24.             .pinName              = kGpioLED3,
    25.             .config.outputLogic   = 0,
    26. #if FSL_FEATURE_PORT_HAS_SLEW_RATE
    27.             .config.slewRate      = kPortFastSlewRate,
    28. #endif
    29. #if FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
    30.             .config.driveStrength = kPortHighDriveStrength,
    31. #endif
    32.         },
    33.                                 {
    34.             .pinName = GPIO_PINS_OUT_OF_RANGE,
    35.         }
    36.     };
    复制代码
    1.    GPIO_DRV_SetPinOutput(kGpioLED1);
    2.                         GPIO_DRV_SetPinOutput(kGpioLED2);
    3.                         GPIO_DRV_SetPinOutput(kGpioLED3);


    4.     while(1)
    5.     {
    6.                         GPIO_DRV_ClearPinOutput(kGpioLED1);
    7.                         softdelay(0x1ffffff);
    8.                         GPIO_DRV_SetPinOutput(kGpioLED1);
    9.                         GPIO_DRV_ClearPinOutput(kGpioLED2);
    10.                         softdelay(0x1ffffff);
    11.                         GPIO_DRV_SetPinOutput(kGpioLED2);
    12.                         GPIO_DRV_ClearPinOutput(kGpioLED3);
    13.                         softdelay(0x1ffffff);
    14.                         GPIO_DRV_SetPinOutput(kGpioLED3);
    15.                         GPIO_DRV_ClearPinOutput(kGpioLED1);
    16.                         GPIO_DRV_ClearPinOutput(kGpioLED2);
    17.                         softdelay(0x1ffffff);
    18.                         GPIO_DRV_SetPinOutput(kGpioLED1);
    19.                         GPIO_DRV_ClearPinOutput(kGpioLED2);
    20.                         GPIO_DRV_ClearPinOutput(kGpioLED3);
    21.                         softdelay(0x1ffffff);
    22.                         GPIO_DRV_SetPinOutput(kGpioLED2);
    23.                         GPIO_DRV_ClearPinOutput(kGpioLED1);
    24.                         GPIO_DRV_ClearPinOutput(kGpioLED3);
    25.                         softdelay(0x1ffffff);
    26.                         GPIO_DRV_ClearPinOutput(kGpioLED1);
    27.                         GPIO_DRV_ClearPinOutput(kGpioLED2);
    28.                         GPIO_DRV_ClearPinOutput(kGpioLED3);
    29.                         softdelay(0x1ffffff);
    30.                         GPIO_DRV_SetPinOutput(kGpioLED1);
    31.                         GPIO_DRV_SetPinOutput(kGpioLED2);
    32.                         GPIO_DRV_SetPinOutput(kGpioLED3);
    33.                         softdelay(0x1ffffff);
    34. //        if(isButtonPress)
    35. //        {
    36. //            PRINTF(" SW is pressed \r\n");
    37. //            // Reset state of button.
    38. //            isButtonPress=false;
    39. //        }
    40.     }
    41.                
    42. }
    43. void softdelay(uint32_t n)
    44. {
    45.         while(n)
    46.                 n--;
    47. }
    复制代码

    只贴出了我修改的部分,由于实在没找到KSDK的延时函数在哪里,自己写了个软件延时将就一下。
    下面是程序运行效果:就是各种不同颜色的LED等在变化


    20151109_000533.mp4_1446999264.gif

    转换成gif后好像有些颜色看不出来了,本来应该有7中颜色变化才对。
    附近是完整工程,可以作为工程模板使用,如果有人需要的话。


    传了半天传不成功,直接放网盘了:https://pan.baidu.com/s/1i397LWh

    评分

    参与人数 1NXP金币 +5 收起 理由
    oo_ee + 5

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    189

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    244
    最后登录
    2020-10-19
    发表于 2015-11-9 08:55:32 | 显示全部楼层
    支持一下楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    642

    帖子

    0

    高级会员

    Rank: 4

    积分
    748
    最后登录
    1970-1-1
    发表于 2015-11-9 09:15:42 | 显示全部楼层
    感谢风子 分享
    104930kli5jsmlssemljli.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    158

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1243
    最后登录
    1970-1-1
    发表于 2015-11-9 10:12:14 | 显示全部楼层
    谢谢楼主分享
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-11-9 10:27:24 | 显示全部楼层
    飞思卡尔的库还么用过,不过感觉其库出得比st的标准库要晚很多,而且支持不是很全面,这一点确实没有ST的好
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    78

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    209
    最后登录
    2015-12-11
    发表于 2015-11-9 10:41:06 | 显示全部楼层
    继续加油吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    569

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2119
    最后登录
    2018-2-1
    发表于 2015-11-9 11:07:57 | 显示全部楼层
    谢谢楼主分享, FreeLogo.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-4 23:20
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    9

    主题

    573

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1785
    最后登录
    2017-3-3
     楼主| 发表于 2015-11-9 11:32:52 | 显示全部楼层
    kingsings 发表于 2015-11-9 10:27
    飞思卡尔的库还么用过,不过感觉其库出得比st的标准库要晚很多,而且支持不是很全面,这一点确实没有ST的好 ...

    恩,可能更新换代还不够多,
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-4 23:20
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    9

    主题

    573

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1785
    最后登录
    2017-3-3
     楼主| 发表于 2015-11-9 11:33:07 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-6-6 10:47
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    63

    帖子

    0

    注册会员

    Rank: 2

    积分
    181
    最后登录
    2018-6-6
    发表于 2015-11-9 11:45:25 | 显示全部楼层
    这个是M4的吧,有网口吗,感觉还不错。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-21 03:12 , Processed in 0.110038 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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