1082|4

280

帖子

0

TA的资源

一粒金砂(高级)

第一帖:开箱——NXP FREEDOM DEVELOPMENT BOARD KW41Z的简单使用 [复制链接]

收到NXP FREEDOM DEVELOPMENT BOARD KW41Z也有几天时间了,这块板子确实我是超级超级想要体验的,说起来还是有所渊源的。早在2015年的一次参加NXP的线下研讨会的时候,就有幸见过这款开发板,当初就是以Thread为主做宣传,同时并做了一些demo的示例供其演示。当时物联网的概念虽然已经很火热了,但是物联网技术还是比较薄弱的,无线组网方面还没有蓝牙mesh,当时最火的就是CC2530的zigbee,和SX1278等的lora;
因此,当初看演示者演示Thread组网和未来Thread的应用的时候,我觉得这是一个新的方向和新的物联网组网的一种方式,当然了,现在的Thread好像也没怎么推广起来,但是当初的心还是没有忘记,正好借此机会,可以好好的玩耍一下KW41Z,确实如愿以偿了。
003245ymcxkxpa0xhxvhnh.png
本次的主角就是KW41Z,该芯片是一款由NXP Semiconductors推出的低功耗蓝牙和802.15.4无线通信解决方案。它集成了ARM Cortex-M0+处理器和多种无线通信协议,包括蓝牙低功耗(Bluetooth Low Energy)和IEEE 802.15.4。KW41Z适用于物联网设备、智能家居、传感器网络等领域,具有低功耗、高性能和丰富的外设接口特点。它还支持NXP的Thread和Zigbee协议栈,为物联网应用提供了更多的选择和灵活性。
拿到开发板当然是要搭建环境和点灯喽,这里官方其实提供了一些SDK,里面包含了IAR和MCUXpressoIDE的工程和中间件,并且是支持keil的,但是建议自己搭建keil的环境,所以本次我先使用IAR的环境来实现环境的应用与点灯操作吧。
IAR本次选择的是8.32版本,然后程序基础工程采用的是SDK中的SDK_2_2_3_FRDM-KW41Z\boards\frdmkw41z\driver_examples\gpio,打开工程之后是这样。
003245vgcvrr1oe4etd481.png
可以根据例程之中的结构知道程序每个部分都是做什么的,知道哪里是初始化,初始化的结构是如何?本次由于只是跑通环境且驱动LED,所以只知道如何驱动IO的高低电平就好了。
首先初始化IO,本程序之中由于想要驱动三色LED,所以需要驱动3个IO,分别是PC1、PA18与PA19。
void BOARD_InitPins(void) {
CLOCK_EnableClock(kCLOCK_PortA); /* Port A Clock Gate Control: Clock enabled */
CLOCK_EnableClock(kCLOCK_PortC); /* Port C Clock Gate Control: Clock enabled */
PORT_SetPinMux(PORTA, PIN18_IDX, kPORT_MuxAsGpio); /* PORTA18 (pin 6) is configured as PTA18 */
PORT_SetPinMux(PORTA, PIN19_IDX, kPORT_MuxAsGpio); /* PORTA19 (pin 7) is configured as PTA19 */
PORT_SetPinMux(PORTC, PIN1_IDX, kPORT_MuxAsGpio); /* PORTC1 (pin 37) is configured as PTC1 */
PORT_SetPinMux(PORTC, PIN6_IDX, kPORT_MuxAlt4); /* PORTC6 (pin 42) is configured as UART0_RX */
PORT_SetPinMux(PORTC, PIN7_IDX, kPORT_MuxAlt4); /* PORTC7 (pin 43) is configured as UART0_TX */
SIM->SOPT5 = ((SIM->SOPT5 &
(~(SIM_SOPT5_LPUART0RXSRC_MASK))) /* Mask bits to zero which are setting */
| SIM_SOPT5_LPUART0RXSRC(SOPT5_LPUART0RXSRC_LPUART_RX) /* LPUART0 Receive Data Source Select: LPUART_RX pin */
);
}
接下来配置IO的模式,也就是配置IO输出。
/* Init output LED GPIO. */
GPIO_PinInit(BOARD_LED_GPIO, BOARD_LED_GPIO_PIN, &led_config);
GPIO_PinInit(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PIN, &led_config);
GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &led_config);
接下来是实现对IO的控制,比如输出高电平或者是输出低电平,本次是采用IO反转的模式,也就是toggle,因此代码如下:
delay();
delay();
GPIO_TogglePinsOutput(BOARD_LED_GPIO, 1u << BOARD_LED_GPIO_PIN);
delay();
delay();
GPIO_TogglePinsOutput(BOARD_LED_GREEN_GPIO, 1u << BOARD_LED_GREEN_GPIO_PIN);
delay();
delay();
GPIO_TogglePinsOutput(BOARD_LED_BLUE_GPIO, 1u << BOARD_LED_BLUE_GPIO_PIN);
最后的效果如下:
003245h5zde5tztd5zyzng.png
003245nbfxkb7kb8c1g8ks.png
其实经过这一简单的点灯操作,我觉得这个KW41Z还是比较简单上手的,主要是官方写的例程比较清晰明朗,接下来我会基于例程实现对传感器的驱动,敬请期待~
此帖出自RF/无线论坛

最新回复

可能只是没有接触过,各个厂家的的开发方式还是有点不同的    详情 回复 发表于 2024-3-1 09:18

回复
举报

5604

帖子

6

TA的资源

版主

这个板子的集成度挺高啊  

此帖出自RF/无线论坛

点评

对的,而且可玩性非常高,就是上手是真有点难度,哈哈  详情 回复 发表于 2024-2-27 16:56
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引


回复

5168

帖子

236

TA的资源

管理员

期待期待

此帖出自RF/无线论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

回复

280

帖子

0

TA的资源

一粒金砂(高级)

秦天qintian0303 发表于 2024-2-7 09:45 这个板子的集成度挺高啊  

对的,而且可玩性非常高,就是上手是真有点难度,哈哈

此帖出自RF/无线论坛

点评

可能只是没有接触过,各个厂家的的开发方式还是有点不同的   详情 回复 发表于 2024-3-1 09:18

回复

5604

帖子

6

TA的资源

版主

yangjiaxu 发表于 2024-2-27 16:56 对的,而且可玩性非常高,就是上手是真有点难度,哈哈

可能只是没有接触过,各个厂家的的开发方式还是有点不同的 

此帖出自RF/无线论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引


回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表