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等等外设。

NXP JN5169使用代码模板新建外设工程相关推荐

  1. Keil MDK入门---从新建一个工程开始

    熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例 ...

  2. IAR新建stm32工程,完美移植stm32标准库(附源码)

    开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...

  3. NXP JN5169使用定时器进行PWM输出和定时功能

    NXP JN5169使用定时器进行PWM输出和定时功能 一.定时器介绍 1.定时器介绍 2.定时器可操作的模式 3.定时器DIO 4.定时器和PWM模式 5.定时器中断 二.实现代码 1.PWM输出 ...

  4. NXP JN5169 波特率配置方案

    NXP JN5169 UART 波特率设置 一.系统时钟介绍 1.高速(32MHz)系统时钟 1.32MHz 晶体振荡器 2.高速RC振荡器 2.低速(32kHz)系统时钟 1.32 kHz RC 振 ...

  5. NXP JN5169 UART 波特率设置

    NXP JN5169 UART 波特率设置 一.系统时钟介绍 1.高速(32MHz)系统时钟 1.32MHz 晶体振荡器 2.高速RC振荡器 2.低速(32kHz)系统时钟 1.32 kHz RC 振 ...

  6. NXP JN5169使用EEPROM/片上FLASH/随机数/内部NVM

    NXP JN5169使用EEPROM/片上FLASH/随机数/内部NVM JN5169 内存映射 一.EEPROM 1.EEPROM特性 2.实现代码 3.串口格式化输出 4.效果图 二.片上FLAS ...

  7. NXP JN5169 使用红外发送 / 接收

    NXP JN5169 使用红外发送 / 接收 一.红外发送 1.红外发射二极管原理图 2.JN5169 发射端代码 3.STC15W408AS 接收端代码 二.红外接收 一.红外发送 1.红外发射二极 ...

  8. NXP JN5169使用滴答定时器进行精准延时

    NXP JN5169使用滴答定时器进行精准延时(us.ms) 一.滴答定时器介绍 二.滴答定时器系统图 1.系统图介绍 2.单次触发模式 3.可重启模式 4.连续运行模式 三.系统时钟 1.系统时钟域 ...

  9. NXP JN5169 JN-AN-1189-ZigBee-HA-Demo 使用UART0打印调试信息,UART1和其他设备收发数据

    NXP JN5169 JN-AN-1189-ZigBee-HA-Demo 使用UART0打印调试信息,UART1和其他设备收发数据 一.JN-AN-1189 介绍 二.导入工程 三.修改工程 1.典型 ...

最新文章

  1. 【linux】SELinux工具:semanage的安装和使用
  2. Python全栈 MySQL 数据库 (索引、数据导入、导出)
  3. IOS代码添加控件,控件移动,放大,缩小,旋转
  4. operator-sdk安装脚本整理
  5. PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测
  6. Java分布式系统高并发解决方案
  7. java 执行代码超时,如何在Java中使用超时调用一些阻塞方法?
  8. Java数据结构和算法-二叉树
  9. 在网页子文本框模拟特定的鼠标滚轮_Pyhton爬虫的另类操作,之前有碰到不能爬的网页来看看!...
  10. python导入鸢尾花数据集_python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析...
  11. 神经网络:ResNet 论文学习总结(二)-- 模型微调
  12. VS 由于找不到ucrtbased.dll,无法继续执行代码。
  13. spark-streaming 编程(六)mapwithState
  14. 离散数学:关系的性质
  15. kafka消息堆积且CPU过高代码优化
  16. 基于 Mapnik 的地图服务器
  17. Re38:读论文 NeurJudge: A Circumstance-aware Neural Framework for Legal Judgment Prediction
  18. transparent
  19. 三自由度无人机飞手培训、PID调试、飞行教学、飞控算法验证、故障仿真平台
  20. 学完javaee基础,编的一个小游戏—太阳系的八大行星

热门文章

  1. 移动web开发 手机输入框弹出的问题
  2. Android Qt入门
  3. 前端基础1 - 跟着李南江学编程
  4. android消息推送demo
  5. AS400所用编码EBCDIC转ASCII
  6. UMEditor配置
  7. android 视频处理60帧,如何导出60帧视频,让视频画面流畅无比
  8. 相量与正弦量的数学变换原理
  9. setuptools清华源_安装setuptools和pip(转载)
  10. putty远程桌面连接linux,PuTTY + Xming 远程使用 Linux GUI