当前位置: 首页 > article >正文

NXP JN5169使用代码模板新建外设工程

NXP JN5169使用代码模板新建外设工程

  • 一、下载工程模板
  • 二、导入工程
  • 三、修改工程模板
  • 四、根据工程模板新建一个DIO工程


一、下载工程模板

BeyondStudio for NXP不提供直接新建JN516x工程的功能,需要在官网下载工程模板。

现在我们要新建的是仅实现外设功能的工程,不需要ZigBee 3.0协议栈那么的复杂功能,所以这里我们下载的是基于IEEE 802.15.4协议的工程模板。

在这里插入图片描述
这里我们下载的是JN-AN-1174工程模板,选择JN-AN-1174是因为该工程模板简单,方便修改。

在这里插入图片描述

下载地址:IEEE 802.15.4应用笔记

二、导入工程

① 解压JN-AN-1174-JN516x-802-15-4-Application-Template到BeyondStudio的默认工作空间C:\NXP\bstudio_nxp\workspace

在这里插入图片描述

② 打开BeyondStudio for NXP,点击菜单栏的File > Import

在这里插入图片描述

③ 选择General下的Existing Projects into Workspace,然后点击Next

在这里插入图片描述
④ 选择Select root directory,点击Browse…

在这里插入图片描述

⑤ 选择工作空间中之前解压出来的文件夹,点击确定

在这里插入图片描述

⑥ 勾选工程,点击Finish

在这里插入图片描述

⑦ 工程已成功导入到BeyondStudio for NXP中了。

在这里插入图片描述

三、修改工程模板

① 右键单击工程,选择Copy

在这里插入图片描述

② 再次单击右键,选择Paste

在这里插入图片描述

③ 给复制的工程重新命名,例如:JN516x-DIOs-Demo,单击OK

在这里插入图片描述

可以看到,复制过来的工程除了工程名不一样之外,其他都是一样的

在这里插入图片描述

④ 修改文件

1)、删除AN1174_154_EndD文件夹
2)、删除Doc文件下的JN-AN-1174-IEEE802.15.4-App-Template.pdf文件,这个文件夹存放的是说明文档
3)、展开AN1174_154_Coord文件下的Source文件夹,删除AN1174_154_Coord.c,Source文件夹存放的是c源程序。
4)、AN1174_154_Coord重命名为DIOs_Demo
5)、展开Common文件夹下的Source文件夹,修改config.h,该文件用来存放定义,如下图:

在这里插入图片描述

6)、这样就建好了一个空白的工程模板,如下图
在这里插入图片描述

四、根据工程模板新建一个DIO工程

① 展开DIOs_Demo文件下的Source文件夹,右键单击Source文件夹,新建Main.c文件

在这里插入图片描述

在这里插入图片描述
在Main.c中键入代码:

#include <AppHardwareApi.h>
#include <AppQueueApi.h>
#include "config.h"/*函数声明*/
PRIVATE void vLedsInit(void);
PRIVATE void vBtnsInit(void);
PRIVATE void vCbSysCtrl(uint32 u32Device, uint32 u32ItemBitmap);PUBLIC void AppColdStart (void)
{vAHI_WatchdogStop();(void)u32AHI_Init();vLedsInit();vBtnsInit();while (1) {vAHI_CpuDoze();                                                /* Doze                          */}
}PUBLIC void AppWarmStart (void)
{AppColdStart();
}/*代码示例*/
PRIVATE void vLedsInit (void)
{vAHI_DioSetDirection(0, LED_DIO);vAHI_DioSetPullup(LED_DIO, 0);
}PRIVATE void vBtnsInit (void)
{vAHI_DioSetDirection(BTN_DIO, 0);vAHI_DioSetPullup(BTN_DIO, 0);vAHI_DioInterruptEdge(0, BTN_DIO);                                   /* 下降沿触发                    */vAHI_DioInterruptEnable(BTN_DIO, 0);vAHI_SysCtrlRegisterCallback(vCbSysCtrl);
}PRIVATE void vCbSysCtrl (uint32 u32Device, uint32 u32ItemBitmap)
{PRIVATE bool_t bLedState = FALSE;bLedState = !bLedState;bLedState ? LED_ON(LED_DIO) : LED_OFF(LED_DIO);
}

② 展开Common文件下的Source文件夹,打开config.h文件,输入以下代码,DIO定义:

#define BTN_DIO                 ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | \(1 << 4) | (1 << 5) | (1 << 8) | (1 << 9) | \(1 << 10) | (1 << 11))
#define LED2                    (1 <<  7)
#define LED3                    (1 <<  6)
#define LED4                    (1 << 12)
#define LED5                    (1 << 13)
#define LED6                    (1 << 16)
#define LED8                    (1 << 17)
#define LED_DIO                 (LED2 | LED3 | LED4 | LED5 | LED6 | LED8)#define LED_ON(Led)             vAHI_DioSetOutput(0, Led)
#define LED_OFF(Led)            vAHI_DioSetOutput(Led, 0)

③ 修改后的工程如下:

在这里插入图片描述

④ 展开DIOs_Demo文件下的Build文件夹,修改该文件夹下的Makefile文件:
1)TARGET名称要和c源文件所在的文件名称一致
2)芯片名称为JN5169
3)SDK看你安装了哪个SDK,安装4170就写4170,安装4168就写4168

在这里插入图片描述
路径定义,这个不用改:

在这里插入图片描述

上图的路径定义已定义APP_SRC_DIR,添加要参与编译的c文件,APPSRC += AppQueueApi.c 该行不可删除,有多个c文件就添加多行,例如:
APPSRC += a.c
APPSRC += b.c
APPSRC += c.c

在这里插入图片描述

⑤ 修改Properties,选择工程,选择菜单栏的Project > Properties

在这里插入图片描述
选择C/C++ Build,更改Build Location下的Build directory,单击workspace,这个是选择Makefile文件所在的文件夹

在这里插入图片描述
选择DIOs_Demo文件下的Build文件夹,点击OK

在这里插入图片描述

勾选Use default build command

在这里插入图片描述
设置编译工具,展开C/C++ Build,选择Tool Chain Editer,Current toolchain必须选择BA ELF GNU toolchain,点击OK

在这里插入图片描述

⑥ 构建工程,右键单击工程,选择Clean Project,先Clean再Build

在这里插入图片描述

控制台输出:

在这里插入图片描述
刷新工程:

在这里插入图片描述
⑦ 至此,一个关于DIO外设工程已经建好,并构建成功
如何下载工程到JN5169设备:NXP JN5169下载器原理图(带按键)

可以保存该工程模板,然后可以用于构建其他外设工程,例如ADC、UART、SPI、I2C等等外设。

http://www.lryc.cn/news/2419043.html

相关文章:

  • C# 反射(二)操作属性PropertyInfo
  • 基于 Chromium 的第三方浏览器一览
  • Android Kotlin 模块化清洁架构项目指南
  • sptd.sys不是病毒?
  • 网络工程专业主要要学习什么知识呢?
  • PropertyGrid控件由浅入深(二):基础用法
  • 《三国志14》运行提示kbdlt.dll丢失问题的详解解决策略
  • MyBatis foreach语句批量插入数据
  • 正则表达式之grep
  • spring学习之---spring整合Hibernate
  • IIS配置优化
  • 计算机基础入门1:计算机发展四阶段
  • 谷歌怎么搜索关键词
  • sql sever数据库出现恢复挂起的解决办法
  • 【原创】NES第二波:如何用VS Code,编写NES/FC游戏程序。
  • [gtalk]gtalk机器人
  • 时间序列分析:西安GDP 的 ARIMA 分析SAS操作过程(理论知识略)
  • 深入理解Linux内核-内存和磁盘-回收页框
  • 基于TP框架的PHP版本AI网址导航源码
  • SAP数据快速查询工具:Sqvi-QuickView
  • 133道Java面试题及答案(面试必看)
  • web画图技术(svg、canvas、fusioncharts、anychart)简介
  • 解决Jsoup 访问 https协议网站时产生connect reset错误
  • H.264编解码
  • 办公OA系统|基于SpringBoot+Vue实现银行OA系统的设计与实现
  • AssemblyInfo.cs文件的作用
  • Docker入门(二)Docker命令之镜像命令
  • 很漂亮的个人主页(附带源码)
  • Compiling... ,Error spawning cl.exe 解决方法(转自http://hi.baidu.com/%D3%DE%C8%CB%B3%C2/blog/item/f5d43d3f
  • VMware虚拟机和主机之间共享文件夹以及文字和文件的复制功能开启