您可以参考此链接中的答案:
https://github.com/zephyrproject-rtos/zephyr/discussions/35932
就我而言,我使用 Thunderboard Sensor 2 和我的解决方案如下:
移动到文件夹 /zephyr/dts/arm/silabs/efr32mg.dtsi 中的 <board.dsti> 插入您定义的 GPIO 以使用:
...
/ {
zephyr,user {
signal-gpios = <&gpioa 8 GPIO_ACTIVE_HIGH>;
};
...
在这里,我使用我的板端口 A 和引脚 8 作为示意图
保存文件后,打开项目的主文件并插入如下内容:
#define ZEPHYR_USER_NODE DT_PATH(zephyr_user)
...
void main(void)
{
const struct gpio_dt_spec signal =
GPIO_DT_SPEC_GET(ZEPHYR_USER_NODE, signal_gpios);
/* Configure the pin */
gpio_pin_configure_dt(&signal, GPIO_OUTPUT_INACTIVE);
...
while(1){
/* Toggle the pin PA8*/
gpio_pin_toggle(signal.port, signal.pin);
k_msleep(SLEEP_TIME_MS);
}
...