【环境创建】
操作系统:win11
zephyr版本号:
PS D:\luglZephyrproject> west -V West version: v1.5.0 PS D:\luglZephyrproject> west status === status of manifest (zephyr): HEAD detached at v4.4.0
【传感器连接】
首先从老师的提供的教料学习dht11的驱动。但是老师的DAT引脚与蓝牙驱动有突冲,因此需要修改引脚,我这里选择了D4。

但是这个脚连到了开发板的RGB灯上,刚好有上位电阻,满足了DHT11需要上拉电阻的条件。

【工程创建】
1、在zephyrproject下面创建app\mcx_w71_dht11空目录:

2、创建zephyr所需要的prj.conf、CmakeLists.txt等必要的工程。按照老师的工程添加dht11.c/h等。建好后目录如下:
mcx_w71_dht11/ ├── CMakeLists.txt # target_sources 包含 src/main.c + src/dht11.c ├── prj.conf # BLE / SENSOR / DHT / settings / nvs ├── boards/ │ └── frdm_mcxw71.overlay # dht11 节点 + &gpioa enable + &tpm0 disabled ├── src/ │ ├── main.c # zephyr 主程序:DHT11 + BLE peripheral │ ├── dht11.c # bit-bang driver (DWT cycle counter, no syscalls) │ └── dht11.h # dht11_init / dht11_read
3、修改ovarlay为GPA19
/ {
aliases {
dht11 = &dht11_node;
};
dht11_node: dht11 {
compatible = "aosong,dht";
dio-gpios = <&gpioa 19 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
/* DHT11 DATA on PTA19 (D4): GPIO-A port, pin 19. */
&gpioa {
status = "okay";
};
/* Release PTA19 from the RGB-LED PWM. */
&tpm0 {
status = "disabled";
};
&pinctrl {
pinmux_dht11_data: pinmux_dht11_data {
group0 {
pinmux = <PTA19>;
drive-strength = "low";
slew-rate = "fast";
};
};
};【编译下载】
在CmakeLists.txt添加对mculink的下载支持:
# ------------------------------------------------------------------ # Flash / debug runner pinning (west flash) # ------------------------------------------------------------------ # Board.cmake already chooses `linkserver` as default flasher+debugger # for frdm_mcxw71, but we pin the device string explicitly so # `west flash` works without a probe/board dialog when more than one # NXP MCU-Link is plugged in. board_runner_args(linkserver "--device=MCXW716CxxxA:FRDM-MCXW71") board_runner_args(jlink "--device=MCXW716CxxxA" "--reset-after-load") board_finalize_runner_args(linkserver "--dt-flash=y") board_finalize_runner_args(jlink "--dt-flash=y")
编译后下载到开发板,打印日志如下:

到些获取DHT11的数据就完成了。
【总结】
在工程创建中,根据【e起DIY】活动的教材,以及eepw论坛前辈们的经验非常轻松的就完成了初步任务,感受到了zephyr的开发的便捷性。
当然需要对原理图与蓝牙相关知识的一些深入的了解。
我要赚赏金
