在线时间1130 小时
UID1694538
注册时间2018-5-21
NXP金币5883
TA的每日心情 | 怒 6 小时前 |
---|
签到天数: 2504 天 连续签到: 129 天 [LV.Master]伴坛终老
金牌会员
 
- 积分
- 15103
- 最后登录
- 2025-9-11
|
中秋佳节马上进入倒计时了,今年论坛的活动不是很多哟,既然奖品都是有关充电方面的产品,今天周末,发个贴,凑凑数吧。
此次使用的是NXP的K32W061开发板,这块板在NXP的官方网站上有详细的资料,主打Zigbee应用。快速入门指南网址:https://www.nxp.com.cn/document/guide/getting-started-with-the-k32w061:GS-K32W061
正如上述网址,我们拿到开发板后,搭建开发环境需要完成三步:
①、下载关于这块开发板的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:XXX\Documents\MCUXpressoIDE_11.4.0_6237\workspace\k32w061dk6_led_blinky),当然该工作路径是可以在MCUXpresso IDE中进行修改的。
演示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);
- }
- }
复制代码 在命令终端窗口,进入到“C:XXX\Documents\MCUXpressoIDE_11.4.0_6237\workspace\k32w061dk6_led_blinky\Debug”目录下,执行“DK6Programmer -l”查看当前存在的串口号,接着擦去板上的闪存,通过指令“DK6Programmer.exe -V5 -s COM8 -P 1000000 -p FLASH@0x00=”+“工程编译后生成的hex文件的路径”,这里可以将Debug文件夹下的hex文件直接拖至“DK6Programmer.exe -V5 -s COM8 -P 1000000 -p FLASH@0x00=”指令后面,然后回车,接着再输入“Y”。
程序下载完成后,开发板会自动重新加载新程序,此时红色指示灯如同充电状态般闪烁。
此次点灯分享就告一段落,希望中秋佳节,大伙玩得happy,生活需要我们不断给自己充充电,加油。
|
|