查看: 3799|回复: 14

[求助] FRDM_KL43Z 库问题求助

[复制链接]

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
39
最后登录
1970-1-1
发表于 2015-8-24 17:24:25 | 显示全部楼层 |阅读模式
  各位大神, 本人菜鸟一枚,刚入手FRDM_KL43Z。
  从官网上下载了

                                                 FRDM-KL43Z Sample Code Package (REV 0)  
本来想点个灯看一下,自己写的有问题,然后又找出了官方库自带的LED例程

结果编译后还是一样的错误
..\..\..\..\src\projects\frdm_projects\gpio_test\gpio_test.c(53): warning:  #61-D: integer operation result is out of range
    PORT_Init (PORTE, PORT_MODULE_ALT1_MODE, PIN_31, 0, NULL);
..\..\..\..\src\projects\frdm_projects\gpio_test\gpio_test.c(54): warning:  #61-D: integer operation result is out of range
    GPIO_Init (GPIOE, GPIO_PIN_OUTPUT, PIN_31);
..\..\..\..\src\projects\frdm_projects\gpio_test\gpio_test.c(55): warning:  #61-D: integer operation result is out of range
    GPIO_Clr (GPIOE, PIN_31);
..\..\..\..\src\projects\frdm_projects\gpio_test\gpio_test.c(78): error:  #20: identifier "LED_GREEN" is undefined
        GPIO_Set (GPIOD, LED_GREEN);
..\..\..\..\src\projects\frdm_projects\gpio_test\gpio_test.c(112): warning:  #61-D: integer operation result is out of range
      GPIO_Tgl (GPIOD, PIN_5); GPIO_Tgl (GPIOE, PIN_31);
..\..\..\..\src\projects\frdm_projects\gpio_test\gpio_test.c: 4 warnings, 1 error
".\debug\GPIO_Test.axf" - 1 Error(s), 4 Warning(s).

网上说出现此问题是1<<31错误导致的 需要改成(uint32)1<<31

但是查看寄存器列表,他已经做了。
#define PIN_5         (uint32)(1 <<  5)

我已经完全按照官方例程来了啊,一样出错。。。

那么问题就来了,身为菜鸟,就找不到错误原因在哪里了。是不是库有问题还是怎么,求指导~
MDK版本 V5.13
Freescale package 用的最新的1.7
附件是工程。求指点。




我知道答案 目前已有14人回答

GPIO_Test.rar

17.94 MB, 下载次数: 4, 下载积分: 威望 1

评分

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

查看全部评分

回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-24 17:57:54 | 显示全部楼层
楼主你好,请问你编译的是代码包中的哪个例程?
你所说的错误是本身代码编译的问题?
你把代码路径给我吧,我这边跑试试。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
39
最后登录
1970-1-1
 楼主| 发表于 2015-8-24 18:06:16 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-24 17:57
楼主你好,请问你编译的是代码包中的哪个例程?
你所说的错误是本身代码编译的问题?
你把代码路径给我吧, ...

大神 你好,代码包下下来 不能直接编译 他要引用在K\ARM\CMSIS\Lib 的2个文件
里面没有 所以附件是我改过的工程 把他需要的那2个文件放到了工程里面。
然后main.c的代码是有按照原frdm_led_test 的例程COPY过来的。
出现那个integer operation result is out of range 我也不知道是不是代码编译问题 还是用过的MDK5的问题。
我先是自己按照库写了一个,不行 然后就完全抄了LED例程。基本上就是换了个库路径。
然后你说的那个代码路径 我不知道是指那个。是指我电脑上的工程路径吗?
工程是放在下面这个文件夹里
C:\Users\Zhangfx\Documents\Zhangfx\Project\Pro_KL33Z\
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

13

帖子

0

新手上路

Rank: 1

积分
39
最后登录
1970-1-1
 楼主| 发表于 2015-8-24 18:08:24 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-24 17:57
楼主你好,请问你编译的是代码包中的哪个例程?
你所说的错误是本身代码编译的问题?
你把代码路径给我吧, ...

对了 一开始的工程 我是用代码包里面那个
frdm-kl43z48m-sc-baremetal\template文件夹下面那个make_frdm_project.exe 自己生成的。
选的KEIL -> ULINK2->GPIO_TEST
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16715
    最后登录
    1970-1-1
    发表于 2015-8-24 18:23:00 | 显示全部楼层
    关注一下
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
     楼主| 发表于 2015-8-24 22:18:01 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-8-24 17:57
    楼主你好,请问你编译的是代码包中的哪个例程?
    你所说的错误是本身代码编译的问题?
    你把代码路径给我吧, ...

    你好,鉴于我们这种新手,刚接触KL43Z,我是用KL43Z 页面中的这个Code Package 里头的库开发好,还是用KSDK 1.2.0中的库开发好?
    是不是KSDK 1.2.0的库才是更新的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-8-25 12:37:45 | 显示全部楼层
    Nety_o00 发表于 2015-8-24 22:18
    你好,鉴于我们这种新手,刚接触KL43Z,我是用KL43Z 页面中的这个Code Package 里头的库开发好,还是用KS ...

    说对了,建议你用KSDK,因为KSDK是一直更新的,但是之前的sample code就不会更新了,
    你出现的没有MDKlib的问题,是因为之前开发的基于MDK的版本比较低,而现在新的MDK版本的lib路径换掉了,所以会报错,因为路径不对了,把lib以及相关的MDK根目录的文件路径以及文件重新更新下,这样就没有报错了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-8-25 12:38:34 | 显示全部楼层
    Nety_o00 发表于 2015-8-24 22:18
    你好,鉴于我们这种新手,刚接触KL43Z,我是用KL43Z 页面中的这个Code Package 里头的库开发好,还是用KS ...

    你用KSDK吧,那里面也有GPIO的例程,你看看你那边用KSDK KL43的代码是否有问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
     楼主| 发表于 2015-8-25 16:49:10 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2015-8-25 12:38
    你用KSDK吧,那里面也有GPIO的例程,你看看你那边用KSDK KL43的代码是否有问题? ...

    试用了,工程目录结构必须严格按照原DSDK的来,可以用。
    如果稍微不一样就打不开那个Workspace文件,project文件可以打开 不过只有Helloworld工程一个,没有像Getting Started with Kinetis SDK (KSDK) v.1.2.pdf 里说的同时有那个lib工程和Helloworld工程。
    以此,新手不太懂,所以有点问题请教一下。
    一:lib工程到底是什么,我是不是以后开发,每一个工程都必须要跟DEMO一样,带一个这个Lib工程?
    二:这种目录结构可以改吗,如果可以的话,在哪里修改,可以自定义成我自己的路径?
    三:我最终是要用KL33Z128开发做产品,目前是先拿KL43Z先熟悉下。这样子的话,比如我是开发Hellowold2工程。最后是不是只要把里面那个KL43Z的lib 换成KL33Z的lib就可以了?
    四:另外对于库中的很多回调函数,我去看一些什么东西好理解一点?
    非常感谢~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-8-26 10:38:03 | 显示全部楼层
    Nety_o00 发表于 2015-8-25 16:49
    试用了,工程目录结构必须严格按照原DSDK的来,可以用。
    如果稍微不一样就打不开那个Workspace文件,proje ...

    楼主你好!
    现在来回答你的几个问题。
    1,lib里面就是把芯片的模块都写好了底层的代码以及驱动,并且以API函数的形式放出来,这样你就可以直接调用库了。而不需要自己去慢慢写底层驱动。如果使用KSDK形式,那么每个demo是要带对应的库。
    2,SDK里面的结构不可以改,需要沿用lib形式,但是如果你自己新建工程,调用库的话,那就无所谓结构,自己把库文件.a调进来,链接放对就行了。
    3,如果是开发产品的话,要看你对KSDK熟不熟悉,如果不是很熟悉的话,我建议你还是使用barebone的形式,这样可控性比较高,代码就是以普通的的寄存器控制方式去控制。就是新建工程,然后参考FRDM-KL43Z48M-SC-BAREMETAL的驱动,然后自己新建KL33,条用KL33的头文件,驱动就用SC的驱动,这样不管在代码编写,以及代码量方面都能够比较好的控制。
    4,库中的确有很多的回调函数,关于这些函数,还是需要去看KSDK里面的文档Kinetis SDK v.1.2.0 API Reference Manual.pdf 了解相关的API函数,里面会有具体回调函数的讲解。
    现在不知道你做产品,想以什么代码的形式?KSDK还是寄存器控制方式?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-28 11:49 , Processed in 0.202245 second(s), 32 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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