正如上述网址,我们拿到开发板后,搭建开发环境需要完成三步:
①、下载关于这块开发板的MCUXpresso SDK
②、安装工具链,即MCUXpresso IDE
③、安装Python 3.8
接下来,我们按部就班得进行环境搭建,首先我们通过快速入门网址,获得下载MCUXpresso SDK的入口地址,点击“获取MCUXpresso SDK”按钮,提示您必须登录个人账号,因此必须注册基于NXP官网的个人账号,然后才能获取。
![下载组件.png 下载组件.png](https://static.assets-stash.eet-china.com/forum/202108/23/205304uhvgddgsgd4o0dy4.png)
登录后跳转到上图界面,我们选择需要开发使用的功能组件,勾选好后点击“Download SDK”按钮,即可跳转到下载SDK界面,点击“Download SDK Archive”,即可完成SDK包的下载。
![下载K32W061的SDK.png 下载K32W061的SDK.png](https://static.assets-stash.eet-china.com/forum/202108/23/205938ggyw8x9448o3w748.png)
下载完成后,将其解压出来,然后找到Flash编程器安装程序,目录在“tools\JN-SW-4401-DK6-Flash-Programmer”下,双击打开并安装到指定路径,然后将这个路径添加到windows的系统环境变量中。
![安装DK6.png 安装DK6.png](https://static.assets-stash.eet-china.com/forum/202108/23/212215ajskggl303jwzmkl.png)
![添加环境变量.png 添加环境变量.png](https://static.assets-stash.eet-china.com/forum/202108/23/212252y3ztjvjyv7k0j96w.png)
然后进行MCUXpresso IDE的下载,链接一般会提供最新版的MCUXpresso IDE。安装完成后,启动工具,将之前下载好的SDK压缩包文件直接拖放到IDE的log输出窗口处,加载K32W061 SDK包。
![加载SDK.png 加载SDK.png](https://static.assets-stash.eet-china.com/forum/202108/23/213019twxkpk9xd3kp9de3.png)
然后在左边栏,导入K32W061 SDK工程文件
![导入SDK工程文件.png 导入SDK工程文件.png](https://static.assets-stash.eet-china.com/forum/202108/23/213335zfn0b43bor30r9c6.png)
选择将要从SDK工程包中获取相应的功能项目,加载到MCUXpresso IDE中,此时会将整个工程拷贝到默认的工作路径中(C:\Users\tongxin\Documents\MCUXpressoIDE_11.4.0_6237\workspace\k32w061dk6_led_blinky),当然该工作路径是可以在MCUXpresso IDE中进行修改的。
![选择工程.png 选择工程.png](https://static.assets-stash.eet-china.com/forum/202108/23/223821rfppf3kq9hhq5m0q.png)
而后点击“锤子”图标进行编译,编译完成后,error是没有,但warning就有56个,不知道问题出在哪里,按照log提示,大概的意思是数组越界了,但从入门指南网址的视频教程中,官方编译出的结果是没有error,没有warning。
![编译完报56处警告.png 编译完报56处警告.png](https://static.assets-stash.eet-china.com/forum/202108/23/224434srr1n6nnz1zx1zfe.png)
不知道有没有网友跟我一样,碰到相同的问题,暂且就不更新该工程编译出的hex文件,不过演示Zigbee功能,一块K32W061开发板似乎是不太现实的,因此转而加载一个点灯的例程。
我们从电路原理图获悉,板上的两颗LED灯与MCU通过GPIO0与GPIO1相连接。
![LED原理图.png LED原理图.png](https://static.assets-stash.eet-china.com/forum/202108/23/225313gmwvee3a0snnn6nz.png)
![与MCU连接的管脚.png 与MCU连接的管脚.png](https://static.assets-stash.eet-china.com/forum/202108/23/225331k551kbz5p0115h2m.png)
USB连接好开发板,然后在主函数中修改源码,如需串口打印,需要包含{#include "fsl_debug_console.h"}头文件,然后使用“PRINTF()”封装好的函数进行打印。这里需要注意的是,如果下载完程序后,然后打开“串口调试助手”,接着再进行调试、下载程序时,记得必须先关闭串口调试助手,否则会下载失败,因为板上的串口被“串口调试助手”所占用。代码修改如下:
#include "board.h"#include "fsl_gpio.h" #include "pin_mux.h" #include <stdbool.h> #include "fsl_debug_console.h" /******************************************************************************* * Definitions ******************************************************************************/ #define DEMO_USART USART0 #define DEMO_USART_CLK_SRC kCLOCK_Fro32M /* Can't use GREEN LED as conflicts with SW2 usage */ #define BOARD_LED_PORT BOARD_LED_RED1_GPIO_PORT #define BOARD_LED_PIN BOARD_LED_RED1_GPIO_PIN /******************************************************************************* * Variables ******************************************************************************/ volatile uint32_t g_systickCounter; /******************************************************************************* * Code ******************************************************************************/ void SysTick_Handler(void) { if (g_systickCounter != 0U) { g_systickCounter--; } } void SysTick_DelayTicks(uint32_t n) { g_systickCounter = n; while (g_systickCounter != 0U) { } } /*! * @brief Main function */ int main(void) { /* Define the init structure for the output LED pin*/ gpio_pin_config_t led_config = { kGPIO_DigitalOutput, 0, }; /* Board pin init */ /* Security code to allow debug access */ SYSCON->CODESECURITYPROT = 0x87654320; /* reset FLEXCOMM for USART */ RESET_PeripheralReset(kFC0_RST_SHIFT_RSTn); RESET_PeripheralReset(kGPIO0_RST_SHIFT_RSTn); BOARD_BootClockRUN(); BOARD_InitDebugConsole(); BOARD_InitPins(); /* Init output LED GPIO. */ GPIO_PortInit(GPIO, BOARD_LED_PORT); GPIO_PinInit(GPIO, BOARD_LED_PORT, BOARD_LED_PIN, &led_config); /* Set systick reload value to generate 1ms interrupt */ if (SysTick_Config(SystemCoreClock / 1000U)) { while (1) { } } while (1) { PRINTF("This is led_blinky project\n"); SysTick_DelayTicks(100U); GPIO_PortSet(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN); SysTick_DelayTicks(100U); GPIO_PortClear(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN); SysTick_DelayTicks(100U); GPIO_PortSet(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN); SysTick_DelayTicks(100U); GPIO_PortClear(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN); SysTick_DelayTicks(1000U); } }
复制代码![更新程序.png 更新程序.png](https://static.assets-stash.eet-china.com/forum/202108/23/232501a2kuuhc0z502ju32.png)
程序下载完成后,开发板会自动重新加载新程序,此时红色指示灯如同充电状态般闪烁。
![闪灯.gif 闪灯.gif](https://static.assets-stash.eet-china.com/forum/202108/23/233314har6ucmag59f40m0.gif)
此次分享就暂且结尾了,调试中还存在不少疑惑,比方说如果操控LED1(绿灯),红灯会不受控制,一直是被点亮,而且是亮度很弱,工程中说是与button相连接的影响。体验下来,感觉工程代码的调试与下载还是比较方便的,使用命令窗口下载程序,按一下“↑”键即可召回原来的指令,下载速度也快。最后附上电路原理图与参考手册啦
![](static/image/smiley/default/smile.gif)
![](static/image/filetype/pdf.gif)
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
关闭
站长推荐
/3
![上一条 上一条](static/image/common/pic_nv_prev.gif)
![下一条 下一条](static/image/common/pic_nv_next.gif)
-
返回顶部
-