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等等外设。
NXP JN5169使用代码模板新建外设工程相关推荐
- Keil MDK入门---从新建一个工程开始
熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例 ...
- IAR新建stm32工程,完美移植stm32标准库(附源码)
开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...
- NXP JN5169使用定时器进行PWM输出和定时功能
NXP JN5169使用定时器进行PWM输出和定时功能 一.定时器介绍 1.定时器介绍 2.定时器可操作的模式 3.定时器DIO 4.定时器和PWM模式 5.定时器中断 二.实现代码 1.PWM输出 ...
- NXP JN5169 波特率配置方案
NXP JN5169 UART 波特率设置 一.系统时钟介绍 1.高速(32MHz)系统时钟 1.32MHz 晶体振荡器 2.高速RC振荡器 2.低速(32kHz)系统时钟 1.32 kHz RC 振 ...
- NXP JN5169 UART 波特率设置
NXP JN5169 UART 波特率设置 一.系统时钟介绍 1.高速(32MHz)系统时钟 1.32MHz 晶体振荡器 2.高速RC振荡器 2.低速(32kHz)系统时钟 1.32 kHz RC 振 ...
- NXP JN5169使用EEPROM/片上FLASH/随机数/内部NVM
NXP JN5169使用EEPROM/片上FLASH/随机数/内部NVM JN5169 内存映射 一.EEPROM 1.EEPROM特性 2.实现代码 3.串口格式化输出 4.效果图 二.片上FLAS ...
- NXP JN5169 使用红外发送 / 接收
NXP JN5169 使用红外发送 / 接收 一.红外发送 1.红外发射二极管原理图 2.JN5169 发射端代码 3.STC15W408AS 接收端代码 二.红外接收 一.红外发送 1.红外发射二极 ...
- NXP JN5169使用滴答定时器进行精准延时
NXP JN5169使用滴答定时器进行精准延时(us.ms) 一.滴答定时器介绍 二.滴答定时器系统图 1.系统图介绍 2.单次触发模式 3.可重启模式 4.连续运行模式 三.系统时钟 1.系统时钟域 ...
- NXP JN5169 JN-AN-1189-ZigBee-HA-Demo 使用UART0打印调试信息,UART1和其他设备收发数据
NXP JN5169 JN-AN-1189-ZigBee-HA-Demo 使用UART0打印调试信息,UART1和其他设备收发数据 一.JN-AN-1189 介绍 二.导入工程 三.修改工程 1.典型 ...
最新文章
- 【linux】SELinux工具:semanage的安装和使用
- Python全栈 MySQL 数据库 (索引、数据导入、导出)
- IOS代码添加控件,控件移动,放大,缩小,旋转
- operator-sdk安装脚本整理
- PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测
- Java分布式系统高并发解决方案
- java 执行代码超时,如何在Java中使用超时调用一些阻塞方法?
- Java数据结构和算法-二叉树
- 在网页子文本框模拟特定的鼠标滚轮_Pyhton爬虫的另类操作,之前有碰到不能爬的网页来看看!...
- python导入鸢尾花数据集_python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析...
- 神经网络:ResNet 论文学习总结(二)-- 模型微调
- VS 由于找不到ucrtbased.dll,无法继续执行代码。
- spark-streaming 编程(六)mapwithState
- 离散数学:关系的性质
- kafka消息堆积且CPU过高代码优化
- 基于 Mapnik 的地图服务器
- Re38:读论文 NeurJudge: A Circumstance-aware Neural Framework for Legal Judgment Prediction
- transparent
- 三自由度无人机飞手培训、PID调试、飞行教学、飞控算法验证、故障仿真平台
- 学完javaee基础,编的一个小游戏—太阳系的八大行星