正如上述网址,我们拿到开发板后,搭建开发环境需要完成三步:
①、下载关于这块开发板的MCUXpresso SDK
②、安装工具链,即MCUXpresso IDE
③、安装Python 3.8
接下来,我们按部就班得进行环境搭建,首先我们通过快速入门网址,获得下载MCUXpresso SDK的入口地址,点击“获取MCUXpresso SDK”按钮,提示您必须登录个人账号,因此必须注册基于NXP官网的个人账号,然后才能获取。
登录后跳转到上图界面,我们选择需要开发使用的功能组件,勾选好后点击“Download SDK”按钮,即可跳转到下载SDK界面,点击“Download SDK Archive”,即可完成SDK包的下载。
下载完成后,将其解压出来,然后找到Flash编程器安装程序,目录在“tools\JN-SW-4401-DK6-Flash-Programmer”下,双击打开并安装到指定路径,然后将这个路径添加到windows的系统环境变量中。
然后进行MCUXpresso IDE的下载,链接一般会提供最新版的MCUXpresso IDE。安装完成后,启动工具,将之前下载好的SDK压缩包文件直接拖放到IDE的log输出窗口处,加载K32W061 SDK包。
然后在左边栏,导入K32W061 SDK工程文件
选择将要从SDK工程包中获取相应的功能项目,加载到MCUXpresso IDE中,此时会将整个工程拷贝到默认的工作路径中(C:\Users\tongxin\Documents\MCUXpressoIDE_11.4.0_6237\workspace\k32w061dk6_led_blinky),当然该工作路径是可以在MCUXpresso IDE中进行修改的。
而后点击“锤子”图标进行编译,编译完成后,error是没有,但warning就有56个,不知道问题出在哪里,按照log提示,大概的意思是数组越界了,但从入门指南网址的视频教程中,官方编译出的结果是没有error,没有warning。
不知道有没有网友跟我一样,碰到相同的问题,暂且就不更新该工程编译出的hex文件,不过演示Zigbee功能,一块K32W061开发板似乎是不太现实的,因此转而加载一个点灯的例程。
我们从电路原理图获悉,板上的两颗LED灯与MCU通过GPIO0与GPIO1相连接。
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);
- }
- }
程序下载完成后,开发板会自动重新加载新程序,此时红色指示灯如同充电状态般闪烁。
此次分享就暂且结尾了,调试中还存在不少疑惑,比方说如果操控LED1(绿灯),红灯会不受控制,一直是被点亮,而且是亮度很弱,工程中说是与button相连接的影响。体验下来,感觉工程代码的调试与下载还是比较方便的,使用命令窗口下载程序,按一下“↑”键即可召回原来的指令,下载速度也快。最后附上电路原理图与参考手册啦,咱们后会有期。
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
关闭
站长推荐 /2
- 返回顶部