正点原子阿波罗STM32F429IGT6移植zephyr rtos(二)---使用I2C驱动MPU6050

硬件平台:正点原子阿波罗STM32F429IGT6

zephyr版本:Zephyr version 3.7.99

开发环境:ubuntu 24.4

zephyr驱动开发与之前接触到的开发方式可能都不一样,更像是linux驱动开发,zephyr源码里边其实已经有写好的I2C和MPU6050的驱动,我们要做的就是向设备树追加一些内容,和修改一下.yaml文件。

首先找到zephyr/samples/sensor/mpu6050文件夹

在board里边创建一个stm32f429i_alientek.overlay文件

文件内容:

复制代码
/*
 * Copyright (c) 2019 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

&i2c1 {
	mpu6050@68 {
		compatible = "invensense,mpu6050";
		reg = <0x68>;
		status = "okay";
		int-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
	};
};

可以看到内容很简单,向tm32f429i_alientek.dts设备树文件的I2C1节点追加一个MPU6050子节点,compatible 属性为"invensense,mpu6050",设备地址为0X68,状态为启用,中断引脚为PA15,低电平。

然后修改sample.yaml文件

文件内容:

复制代码
#
# Copyright (c) 2019 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
#

sample:
  name: MPU6050 Sensor Sample
tests:
  sample.sensor.mpu6050:
    build_only: true
    platform_allow: nrf52dk/nrf52832 stm32f429i_alientek
    tags: sensors
    integration_platforms:
      - nrf52dk/nrf52832 stm32f429i_alientek

只是在platform_allow和integration_platforms后边加上了我们的板子。

然后就大功告成了

编译:

bash 复制代码
west build -p always -b stm32f429i_alientek samples/sensor/mpu6050

编译成功:

打开串口:

bash 复制代码
sudo minicom -D /dev/ttyUSB0 -b 115200

下载程序:

bash 复制代码
west flash

现象:

相关推荐
cooldream20091 小时前
小智 AI 智能音箱深度体验全解析:人设、音色、记忆与多场景玩法的全面指南
人工智能·嵌入式硬件·智能音箱
聚能芯罗180380464763 小时前
Hi8001/Hi8002高集成升压芯片2.7-40V 宽输入电压智芯一级代理聚能芯半导体原厂技术支持
嵌入式硬件
传感器与混合集成电路4 小时前
PSOC 7020运算模块解析:从放大器到ADC的片上模拟集成之道
嵌入式硬件·物联网
bai5459365 小时前
STM32单片机光敏传感器控制蜂鸣器
stm32·单片机·嵌入式硬件
米羊1215 小时前
FAT32(上)
stm32·单片机·嵌入式硬件
MARIN_shen7 小时前
Marin说PCB之电容物料的替换经验总计--03
嵌入式硬件·硬件工程·信号处理·pcb工艺
d111111111d7 小时前
STM32低功耗学习-停止模式-(学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习
MARIN_shen7 小时前
Marin说PCB之电容物料的替换经验总计--01
单片机·嵌入式硬件·硬件工程·信号处理·pcb工艺
Zero_Era8 小时前
LKT6850安全MCU应用场景介绍
单片机·嵌入式硬件
西城微科方案开发9 小时前
西城微科的体重秤方案开发之路-方案开发商
单片机·嵌入式硬件·方案公司推荐