Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
24cxx_EEPROM
I2C_IIC
RTT 模拟I2C 框架接口问题
发布于 2023-09-22 10:59:15 浏览:709
订阅该版
```c rt_err_t at24cxx_write_one_byte(at24cxx_device_t dev, uint16_t writeAddr, uint8_t dataToWrite) { rt_kprintf("at24cxx_write_one_byte() WriteAddr = %d\r\n ",writeAddr); rt_uint8_t buf[3]; #if (EE_TYPE > AT24C16) buf[0] = (uint8_t)(writeAddr>>8); buf[1] = (uint8_t)writeAddr; buf[2] = dataToWrite; if (rt_i2c_master_send(dev->i2c, AT24CXX_ADDR, 0, buf, 3) == 3) #else dev->AddrInput = (writeAddr >> 8); //增加这么一句话,根据读取地址,自动计算页地址A2A1A0 rt_kprintf("at24cxx_write_one_byte /writeaddr =%d ,AddrInput = %d , AT24CXX_ADDR|dev->AddrInput = %d\r\n",writeAddr,dev->AddrInput,(AT24CXX_ADDR | dev->AddrInput) ); buf[0] = writeAddr; //cmd buf[1] = dataToWrite; //buf[2] = data[1]; if (rt_i2c_master_send(dev->i2c, (AT24CXX_ADDR | dev->AddrInput), 0, buf, 2) == **1**) **//源代码设置是2** #endif return RT_EOK; else return -RT_ERROR; } ``` ```c rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus, rt_uint16_t addr, rt_uint16_t flags, const rt_uint8_t *buf, rt_uint32_t count) { rt_size_t ret; struct rt_i2c_msg msg; msg.addr = addr; msg.flags = flags; msg.len = count; msg.buf = (rt_uint8_t *)buf; ** ret = rt_i2c_transfer(bus, &msg, 1);** rt_kprintf("rt_i2c_master_send() ret = %d\r\n",ret); return ret; } ``` rt_i2c_master_send and rt_i2c_transfer 这两个接口的返回值怎么理解,官网没有详细描述这个返回值,基于AT24CXX driver测试AT24C512,发现,源代码at24cxx_write_one_byte 中的rt_i2c_master_send 接口第五个参数设置2,就会导致发送与接接收的不一致,改成1就好了
查看更多
3
个回答
默认排序
按发布时间排序
张世争
2023-09-25
学以致用
`msg.len = count;`,这里应该是数据的长度(字节),发送一个字节,one_byte 长度就是1
Bakewell
2023-09-27
这家伙很懒,什么也没写!
多谢,所以I2C-bit-ops.c 文件以下函数存在问题,ret 不应该赋值为i,而是实际返回的字节数 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230927/3b7a8efe64746ff25018febe7a6eeca2.png.webp)
ZWH
2023-09-27
这个人很勤快,没空留下点什么
i不就是实际的写入值嘛
撰写答案
登录
注册新账号
关注者
0
被浏览
709
关于作者
Bakewell
这家伙很懒,什么也没写!
提问
14
回答
7
被采纳
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
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
5
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部