Zephyr调用I2C接口相关流程及API

本文详细介绍了在Zephyr中通过HAL库调用I2C硬件驱动的方法,涉及I2C启动流程,以及关键API如i2c_configure、i2c_transfer等的使用、配置和功能。重点讲解了在调试官方demo时的工程配置和如何处理I2C通信中的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言


    zephyr调用硬件的i2c驱动是通过调用HAL库形式,硬件参数设置更多的是在工程的配置文件中设置,比如dts、.conf、.overlay文件,这里主要是介绍下调试官方demo过程中涉及到的一些工程配置和关键api介绍。

二、I2C启动流程


    简单梳理下I2C驱动在zephyr的初始化,关键函数会在流程中列出。

三、关键API


static const struct i2c_driver_api api_funcs = {
    .configure = i2c_stm32_runtime_configure,
    .transfer = i2c_stm32_transfer,
#if defined(CONFIG_I2C_SLAVE)
    .slave_register = i2c_stm32_slave_register,
    .slave_unregister = i2c_stm32_slave_unregister,
#endif
};

I2C操作的api都会注册进i2c_driver_api 结构体,下面具体讲讲每个函数。

i2c_configure
函数原型

    int i2c_configure(const struct device *dev, uint32_t dev_config) 配置主机的i2c控制器 0成功,非0失败
参数介绍

dev const struct d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值