有多少网站是做废旧信息的,免费下载android,重庆九龙坡区哪里有做网站的,免费推广的网站有哪些首先要下载开发使用的IDE#xff1a;MCUXpresso IDE 下载链接#xff1a; 进入nxp的官网#xff0c;搜索KW38 向下翻看#xff0c;找到Xpresso#xff0c;点击进入 习惯使用IAR开发的同学也可以下IAR版本#xff0c;这里以Xpresso为例 下载好后安装#xff0c;一路默…首先要下载开发使用的IDEMCUXpresso 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,0055这个字节不正确这个后面我研究好后再补充。TODO
点击CONNECT连接配对密码是1234连接成功以后如下图 到此KW38入门的第一课结束。