NXP KW38蓝牙开发(一)入门第一课:官网蓝牙广播和连接例程,NMI禁止

首先要下载开发使用的IDE:MCUXpresso IDE
在这里插入图片描述
下载链接:
进入nxp的官网,搜索KW38
在这里插入图片描述
向下翻看,找到Xpresso,点击进入
在这里插入图片描述
习惯使用IAR开发的同学也可以下IAR版本,这里以Xpresso为例
在这里插入图片描述
下载好后安装,一路默认下去就行了 ,安装后打开。
在下面的窗口,选择installed SDKs,然后选择右边的蓝框X
在这里插入图片描述
找到frdmkw38,选中,点击install下载SDK,我这里已经下载好了所以install是灰的,只能Uninstall卸载
在这里插入图片描述
下载好后,在主界面看看有没有显示出来
在这里插入图片描述
接下来点击主界面左下角的import SDK example(s)
在这里插入图片描述
选中KW38,点击下一步
在这里插入图片描述
选择wireless_examples–>bluetooth–>adv_ext_peripheral–>freertos–>adv_ext_peripheral_freertos,点击下一步(我这里是添加过了的),从工程名可以看出,这是从机的扩展广播程序
在这里插入图片描述
等待安装好后左侧的工程界面会显示出来
在这里插入图片描述
点击锤子构建项目,看能否成功
在这里插入图片描述
没有错误和警告,工程是OK的
在这里插入图片描述
首先打开startup–>startup_mkw38a4.c,找到Flash_Config,将最后的一个数值由0xFFFFFFFE改成0xFFFFFBFE,这个是NMI中断的禁能,我第一跑的时候总是进入NMI中断,查了很多资料才知道要改这个FLASH配置。
在这里插入图片描述
对了,这里插一句,可能不熟悉eclipse的同学不知道我这黑色主题是怎么弄的,在工具栏,窗口–>首选项,打开的首选项窗口里,常规–>外观
在这里插入图片描述
接下来打开source–>comment–>AppMain.c,找到

#if defined(cPWR_UsePowerDownMode) && (cPWR_UsePowerDownMode)
#include "PWR_Interface.h"
#endif

这个是低功耗的开关,我们第一次跑KW38,不需要休眠,所以把这个宏定义屏蔽掉
按住Ctrl键,鼠标左键点击cPWR_UsePowerDownMode,这里会弹出三个选项,看最后是文件app_preinclude.h的,点击进去
在这里插入图片描述
app_preinclude.h里面的,屏蔽掉
在这里插入图片描述在这里插入图片描述
接下来AppMain.c里继续向下翻,找到main_task,这个就是主任务了,前面是一些初始化,之后进入App_Thread来执行功能
在这里插入图片描述
按住Ctrl点击跳转,App_Thread的定义正好在下面
在这里插入图片描述
这里主要看App_HandleHostMessageInput(pMsgIn);,按住Ctrl跳转进入其定义
在这里插入图片描述
看App_HandleHostMessageInput(pMsgIn)的内容,和蓝牙相关的是BleApp_GenericCallback(&pMsg->msgData.genericMsg);
在这里插入图片描述
BleConnManager_GenericEvent(pGenericEvent)这个函数执行后根据事件进行每一个CASE的执行,比如最开始进入,正常情况第一个事件一定是第一个case gInitializationComplete_c:,这时候去执行BleApp_Config();配置蓝牙
在这里插入图片描述
case gExtAdvertisingParametersSetupComplete_c:和case gExtAdvertisingDataSetupComplete_c:是相互配合的
1、当ext adv的参数设置好后
2、进入case gExtAdvertisingParametersSetupComplete_c:,这里执行Gap_SetExtAdvertisingData
3、执行成功后进入case gExtAdvertisingDataSetupComplete_c:,这里执行App_StartExtAdvertising,这就意味着KW38蓝牙开始广播,这时在手机蓝牙是可以搜到KW38的。
那么,ext adv的参数设置是在哪进行的?
在BleApp_GenericCallback函数的同一个文件adv_ext_peripheral.c里面,可以找到函数BleApp_Start()这个函数,里面有一个执行内容就是
Gap_SetExtAdvertisingParameters,即设置广播参数。
在这里插入图片描述
但是用souceinsight发现,这个例程调用BleApp_Start()的地方是Key_HandleOption()
在这里插入图片描述
用官方开发板的小伙伴,这候就可以直接构建后下载到板子上了,程序运行后,按按键PB2即可开始广播
在这里插入图片描述
而像我这样没有官方开发板,是自制板子的,就需要让蓝牙主动广播
回到函数BleApp_GenericCallback()
在BleApp_Config()下面加入BleApp_Start(0);
在这里插入图片描述
接下来还要给同学们看看关键的两个参数所在文件,蓝牙的名字是在app_config.c里,extAdvScannableData是广播时看到的名字
在这里插入图片描述
下面还有一个extAdvConnectableData,意思是连接后的名字
在这里插入图片描述
MAC地址是在ble_controller_task.c里面ControllerSetBD_ADDR()函数,gHardwareParameters.bluetooth_address就是蓝牙地址,是初始化的时候从flash里读出来放在这,可以在这里打个断点看看地址数据
在这里插入图片描述
点击锤子编译后,我们点击DEBUG按钮
在这里插入图片描述
我用的是JLINK,所以双击JLINK
在这里插入图片描述
调试配置出来后点击调试
在这里插入图片描述
可以看到调试用的按钮都不是灰色了,而且程序也跑到main停下
在这里插入图片描述
点击在这里插入图片描述全局运行

打开nrf connect APP,搜索设备,可以看到EA*PRPH的设备,这和程序里面设置的一直,MAC地址也是相同的,断点看到的是7F,AF,5F,55,60,00,55这个字节不正确,这个后面我研究好后再补充。TODO
在这里插入图片描述

点击CONNECT连接,配对密码是1234,连接成功以后如下图
在这里插入图片描述
到此,KW38入门的第一课结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

views 多个文件夹 netcore_.NET Core中的使用Kestrel服务器理解及应用

Kestrel是一个基于libuv的跨平台.NET Core web服务器,libuv是一个跨平台的异步I/O库。ASP.NET Core模板项目使用Kestrel作为默认的web服务器。Kestrel支持以下功能:HTTPS用于启用不透明升级的WebSockets位于Nginx之后的高性能Unix socketsKestrel 被.NET…

NXP UWB NCJ29D5开发(一)环境搭建

1、从NXP的共享账号下载资料 共享账号需要找对接的NXP人员拿到,他会把资料分享到这个账号,在这个账号里面可以下载 进入nxp官网,登录后点击my nxp,选择Software Licensing and Support 进入后接着选择View accounts 进入后选择…

Stack的三种含义

作者:阮一峰 学习编程的时候,经常会看到stack这个词,它的中文名字叫做”栈”。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。…

NXP UWB NCJ29D5开发(二)BlinkyLed例程

路径为UWB\NCJ29D5\NCJ29D5_CAS_Examples_v1.4\onic\BlinkyLed\toolsupport\keil 例程怎么来的可以看看上一篇NXP UWB NCJ29D5开发(一)环境搭建 1、 //系统选择外部晶振,时钟频率为55.2Mhz phscaAppHal_Init(PHSCA_APPHAL_XO_CLOCK_SOURCE_…

强肝保肝养肝4大食物

“强肝的食物,保肝的食物有哪些,养肝的食物有哪些”如果您对这些食物不了解不明白。那就看看专家为您推荐的四款强肝保肝养肝的食物。荔枝(供图/华盖)一、是荔枝,荔枝可以保肝,对肝有好处根据《本草纲目》记载荔枝有强肝健胰的效果…

如何查看注解实现_该怎么运用注解呢?Java团队元老有话说

来源 | 异步 15讲能学好诞生24年的JAVA吗?你当然会感到怀疑,众所周知,在技术向的IT论坛上,“如何在十天之内快速掌握好Java?”这类问题,往往会招来嘲笑。来源于知乎但在当下,5分钟能看完一部电影…

NXP S32K144开发(一)环境搭建和新建工程

1、首先需要安装S32 Design Studio for ARM,在NXP官网可以搜索到,这玩意也是基于eclipse的 安装好后就可以打开了。 2、新建工程 过程可以参考NXP官网: https://www.nxp.com/document/guide/get-started-with-the-s32k144evb:NGS-S32K144E…

首先记录异常的根本原因

Logback日志库的0.9.30版本带来了一个很棒的新功能:从根(最内部)异常而不是最外部异常开始记录堆栈跟踪。 当然,我的兴奋与我贡献了此功能无关。 用塞西尔德米勒(Cecil B. de Mille) 的话来解释&#xff1a…

Android 中的 Service 全面总结

1、Service的种类 按运行地点分类: 类别区别 优点缺点 应用本地服务(Local)该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不…

找出互联网类似以下图的实例

转载于:https://www.cnblogs.com/sghcjy/p/4978851.html

使用Spring MVC开发Restful Web服务

REST简介 摘自Wikipedia: REST风格的体系结构由客户端和服务器组成。 客户端向服务器发起请求; 服务器处理请求并返回适当的响应。 请求和响应围绕资源表示的传递而构建。 资源本质上可以是可以解决的任何连贯且有意义的概念。 正如您所阅读的&#xff0…

端到端测试的滥用–测试技术2

我的上一个博客是有关测试代码方法的一系列博客中的第一篇,概述了使用一种非常常见的模式从数据库检索地址的简单方案: …并描述了一种非常通用的测试技术: 不编写测试 , 而是手动进行所有操作。 今天的博客涵盖了另一种实践&…

那些年困扰我们的Linux 的蠕虫、病毒和木马

虽然针对Linux的恶意软件并不像针对Windows乃至OS X那样普遍,但是近些年来,Linux面临的安全威胁却变得越来越多、越来越严重。个中原因包括,手机爆炸性的普及意味着基于Linux的安卓成为恶意黑 客最具吸引力的目标之一,以及使用Lin…

(转)FPGA异步时序和多时钟模块

http://bbs.ednchina.com/BLOG_ARTICLE_3019907.HTM 第六章 时钟域 有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟域。换句话说,只有一个独立的网络可以驱动一个设计中所有触发器的时钟端口。虽然…

怎么检测不到我的音频_Linux 上的最佳音频编辑工具推荐 | Linux 中国

在 Linux 上,有很多种音频编辑器可供你选用。不论你是一个专业的音乐制作人,还是只想学学怎么做出超棒的音乐的爱好者,这些强大的音频编辑器都是很有用的工具。-- Ankush Das(作者)在 Linux 上,有很多种音频编辑器可供你选用。不论…

具有GlassFish和一致性的高性能JPA –第3部分

在我的四部分系列的第三部分中,我将解释将Coherence与EclipseLink和GlassFish结合使用的第二种策略。 这就是通过EclipseLink使用Coherence作为二级缓存(L2)的全部内容。 一般的做法 这种方法将Coherence数据网格应用于依赖于无法完全预加载到…

精选30道Java笔试题解答(转)

都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底, 老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是I…

list取值_Redis中List及quicklist实现-2

上一篇中看了List的使用方式、quicklist中的各个结构体,这一篇来看看quicklist里面的几个核心函数,quicklistCreate函数、quicklistCreateNode函数、quicklistPush函数、quicklistPop函数。接下来我们通过源码看一下quicklist中是如何借鉴STL中deque的这…

通过示例休眠–第1部分(删除孤儿)

所以我想做一系列的冬眠例子,展示冬眠的各种特征。 在第一部分中,我想展示有关删除孤儿功能及其在故事情节中的使用方法。 因此,让我们开始:) 先决条件 : 为了尝试以下示例,您将需要以下提到的JAR文件: …

Win10手记-IIS部署网站问题解决

最近在自己的Win10电脑上尝试部署ASP.NET网站时出现了问题,经过多方查找定位到IIS为问题来源。 开始之前 先描述下技术环境: 1.Windows 10 PC 2.Windows 自带的IIS 7 3.ASP.NET Web API项目网站 4.VS 2015 问题描述 首先我们为PC安装IIS,按照…