Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
I2C_IIC
请问如何实现第2路模拟I2C
发布于 2019-04-09 16:25:08 浏览:1727
订阅该版
* 本帖最后由 pc8052 于 2019-4-9 16:33 编辑 * 系统中已经有了一路i2c,请问如何实现软件模拟第2路的i2c? 我在现有的drv_i2c.c驱动文件中复制并修改了对应引脚和函数,然后如何注册进系统使用呢?这个文件内类似下面的函数都复制添加并修改,在同一个c文件内。 static void drv_i2cn_gpio_init() static void drvn_set_sda(void *data, rt_int32_t state) ...... static rt_int32_t drvn_get_sda(void *data) ...... static const struct rt_i2c_bit_ops drvn_bit_ops = { RT_NULL, drvn_set_sda, drvn_set_scl, drvn_get_sda, drvn_get_scl, drvn_udelay, 1, 100 }; int drvn_i2c_init(void) { static struct rt_i2c_bus_device i2cn_bus; drv_i2cn_gpio_init(); rt_memset((void *)&i2cn_bus, 0, sizeof(struct rt_i2c_bus_device)); i2cn_bus.priv = (void *)&drvn_bit_ops; rt_i2c_bit_add_bus(&i2cn_bus, I2C_BUS_NAME); return RT_EOK; } 跟踪 rt_components_board_init()函数,能看到系统执行了pin,uart等设备初始化,可是怎么能初始化自己定义的第2路模拟i2c呢? 自己定义的drvn_i2c_init(void)这个初始化函数,系统没有执行。
查看更多
5
个回答
默认排序
按发布时间排序
pc8052
2019-04-09
这家伙很懒,什么也没写!
谢谢!我也看的这个添加指南,env里能看到配置选项。env生成工程后,keil编译也没提示错误。但就是不行。
pc8052
2019-04-09
这家伙很懒,什么也没写!
``` int drv_i2c_init(void) { static struct rt_i2c_bus_device i2c2_bus,i2cn_bus; drv_i2c_gpio_init(); rt_memset((void *)&i2c2_bus, 0, sizeof(struct rt_i2c_bus_device)); i2c2_bus.priv = (void *)&drv_bit_ops; rt_i2c_bit_add_bus(&i2c2_bus, I2C_BUS_NAME); drv_i2cn_gpio_init(); rt_memset((void *)&i2cn_bus, 0, sizeof(struct rt_i2c_bus_device)); i2cn_bus.priv = (void *)&drvn_bit_ops; rt_i2c_bit_add_bus(&i2cn_bus, I2Cn_BUS_NAME); return RT_EOK; } ``` 你好,在4.0.0 build Apr 9 2019版本中没有发现drv_soft_i2c.c的文件。 我把第2路的 i2c 初始化程序放到原来的初始化函数 int drv_i2c_init(void)中了。msh查看时能出现 i2cn 的设备,可以使用。请问这种方式可以吗?附件是在原来drv_i2c.c文件中修改的。 device type ref count -------- -------------------- ---------- i2cn I2C Bus 0 i2c1 I2C Bus 0 uart3 Character Device 1 uart2 Character Device 1 uart1 Character Device 2 pin Miscellaneous Device 0
pc8052
2019-04-10
这家伙很懒,什么也没写!
>驱动不全的话也要相应的增加相关内容的。drv_soft_i2c.c中增加soft_i2c_config参数以及drv_soft_i2c.h中 ... --- 在stm32路径下找到文件了drv_soft_i2c.c,我再看看。 \rt-thread-master\rt-thread-master\bsp\stm32\libraries\HAL_Drivers\drv_soft_i2c.c 原先只在\rt-thread-master\rt-thread-master\bsp\stm32f10x-HAL\ 路径查找,没发现这个文件。
撰写答案
登录
注册新账号
关注者
0
被浏览
1.7k
关于作者
pc8052
这家伙很懒,什么也没写!
提问
6
回答
16
被采纳
1
关注TA
发私信
相关问题
1
NXP的I2C应该比ST的好用吧
2
Use of I2C device driver
3
关于I2C 驱动问题请教
4
我如何知道这个iic的io配置和我电路设计的是一致的?
5
I2C模拟读操作失败,不知道问什么进不去读函数
6
RTT的I2C有官方文档资料没有
7
求 STM32F103 IIC 自定义IO初始化 代码
8
报一个LPC4008代码中I2C的bug
9
RTOS IIC总线使用
10
关于在RTT中使用STM32 I2C的疑问
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用RC522软件包驱动FM1722
2
常量数据类型和表达式陷阱分享
3
进行i2c驱动移植的经验总结
4
在VSCode中使用clang-format
5
我该如何使用这个微雪的WIFI400 WIFI-LPB-100在rtt里或者我该怎样为它开发驱动
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部