怎么给kl25z建立一个usb_device 的keil工程

2019-03-26 07:53发布

本帖最后由 liwenz 于 2016-6-12 09:31 编辑

我在学用kl25z , 看例子工程都还不错,编译连接,调试都可以。
其中有个工具 make_new_project-sc_Keil, 也就是建立工程模板,感觉不错。

但我特想学习usb device 程序, 源代码也有,但我不知道怎么建立工程。
我用模板工具建立了一个usb_device ,然后添加 usb_main.c 到工程里, 当然还要添加其他的文件。
为了能编译, 我把很多相关其他文件都注释掉,可以编译成功。
然后我就取消如下2行的注释,可就不行了。当然我也添加include 路径。
#include "usb_cdc.h"
#include "usb_reg.h"

错误信息如下。 如果我把其他文件都加上,错误信息更多, 为了简化问题,我只是加这2行.

compiling usb_main.c...
......srccpuarm_cm0.h(19): error:  #147-D: declaration is incompatible with "void NVIC_EnableIRQ(IRQn_Type)" (declared at line 626 of "C:KeilARMPACKARMCMSIS3.20.3CMSISIncludecore_cm0plus.h")
  void enable_irq (int);
......srccpuarm_cm0.h(20): error:  #147-D: declaration is incompatible with "void NVIC_DisableIRQ(IRQn_Type)" (declared at line 638 of "C:KeilARMPACKARMCMSIS3.20.3CMSISIncludecore_cm0plus.h")
  void disable_irq (int);

kl25_sc_rev10 样例库,有cw ,iar ,keil 的工程文件, 我只会用keil , 其实如果用 iar 就有现成的usb_device. 不知道为什么keil 和 cw 没有这个工程目录, src 都是公用的。
如果你不能得到 kl25_sc_rev10 , 可以qq 联系我: 635477196 理文

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
liwenz
1楼-- · 2019-03-26 16:53
我把工程附件上来,其中usb_device 是我构造的工程,有问题的工程。
不过我想到一个办法,因为他有twr-KL25Demo,这个里面好像有usb 的功能,我做减法,去掉一些不用的功能,就是我的结果了。
因为控制zip 的大小,去掉了建造工程的exe 文件。
liwenz
2楼-- · 2019-03-26 20:20
我找到一个iar 的版本, 下了一个iar 可以编译链接。 但我用iar 怎么会没驱动。
我用keil 驱动是没问题的。
liwenz
3楼-- · 2019-03-27 00:44
今天把iar 的工程编译结果下到kl25z 里了, 因为我安装好了IAR的驱动了。
debug download 到kl25z 里, 安装驱动程序,为com7 , 用flashmagic 测试。
打入就回馈了,看上去程序运行正常。
liwenz
4楼-- · 2019-03-27 06:40
下面这2个链接 告诉你怎么移植,我估计那个iar 工程就是那里下的。这2个链接基本一致
http://www.61ic.com/Technology/embed/201505/52920.html
http://comm.chinaaet.com/adi/blogdetail/39877.html

从下面链接学习怎么安装iar的驱动
http://jingyan.eeboard.com/article/70099
liwenz
5楼-- · 2019-03-27 09:19
我下载编译下载都很好。
按照链接的方法,做了一遍,却有点问题。
出现如下错误:
Error[Li005]: no definition for "USBD_ReqGetStatus" [referenced from D:kl25z
kl25_sc_rev10klxx-sc-baremetaluildiarplatinumFLASH_128KBObjusbd_core.o]

我就检查 usbd_core.c
inline BOOL USBD_ReqGetStatus (void) {
这不是明明为inline 函数吗 ?  怎么会 no definition
我就编译链接不了。

我把isr.h中
#undef  VECTOR_040
#define VECTOR_040 USB0_IRQHandler

extern void USB0_IRQHandler(void);
这3行注释掉,编译链接下载都可以了,运行结果不对了。
因为本来要设置usb 中断的,却没有。
wendaoxyp
6楼-- · 2019-03-27 14:49
 精彩回答 2  元偷偷看……

一周热门 更多>