Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
I2C_IIC
rt_i2c_transfer()api使用问题
发布于 2019-04-12 21:03:57 浏览:3311
订阅该版
* 本帖最后由 wolegequwangge 于 2019-4-12 21:02 编辑 * I2C一直不通,看了错误是rt_i2c_transfer()这个API没有运行正确,再往下看应该是封装的i2c_bit_xfer()函数,因为比较菜,这里看起来太晕了。 想了想觉得封装好的API应该都是试验过对的,而且我换了两个传感器都是一样的结果,那应该是用户代码的问题。 所以想问下各位大佬我这个配置对不对?代码里有没有使用API不当? 另外还想知道RTT里设置I2C高低电平的延时是多少啊,怎么修改? 板子:nucleo-stm32f411ret 传感器:bmp180 读ID指令:0XEE 0XD0 然后再0XEF(0XEE&读标志)。 ENV配置如图。 bmp180.c文件: ```#include
#include
#include
#include "bmp180.h" #define BMP_I2C_BUS_NAME "i2c1" #define BMP_ADDR 0xEE struct rt_i2c_bus_device *bmp_i2c_bus = RT_NULL; //读操作 rt_err_t bmp_readb(rt_uint8_t raddr,rt_uint8_t *buf) { struct rt_i2c_msg msgs[2]; msgs[0].addr=BMP_ADDR; msgs[0].flags=RT_I2C_WR; msgs[0].buf=&raddr; msgs[0].len=1; msgs[1].addr=BMP_ADDR; msgs[1].flags=RT_I2C_RD; msgs[1].buf=buf; msgs[1].len=1; if (rt_i2c_transfer(bmp_i2c_bus,msgs,2)==2) { return RT_EOK; } else { rt_kprintf("read error!
"); return -RT_ERROR; } } //读ID函数 void bmp_readid(void) { rt_uint8_t id; rt_uint8_t temp; temp=bmp_readb(0xD0,&id); if(temp==0) { rt_kprintf("test id:%d
",id); } else { rt_kprintf("test error:=%d
",temp); } } //初始化 void bmp_init(void) { bmp_i2c_bus=(struct rt_i2c_bus_device*)rt_device_find(BMP_I2C_BUS_NAME); } //线程入口 void bmp_entry(void *parameter) { bmp_init(); while(1) { bmp_readid(); rt_thread_mdelay(500); } } //创建线程 int bmp(void) { rt_thread_t tid; tid = rt_thread_create( "bmp180", bmp_entry, RT_NULL, 1024, 10, 10); if (tid != RT_NULL) { rt_thread_startup(tid); } return 0; } MSH_CMD_EXPORT(bmp,bmp180);```bmp180.h文件 ```#ifndef __BMP180_H__ #define __BMP180_H__ #include
#include
rt_err_t bmp_readb(rt_uint8_t raddr,rt_uint8_t *buf); void bmp_readid(void); void bmp_init(void); #endif ```谢谢 ![1.png](https://oss-club.rt-thread.org/uploads/201904/12/202410krauehlrd2e11yad.png) ![2.png](https://oss-club.rt-thread.org/uploads/201904/12/202416bu6r1zyywnrnxq6z.png) ![3.png](https://oss-club.rt-thread.org/uploads/201904/12/202449s5zp2atwapwokpxw.png) ![4.png](https://oss-club.rt-thread.org/uploads/201904/12/202454xd88aaqt8m1v1tt6.png)
查看更多
2
个回答
默认排序
按发布时间排序
wolegequwangge
2019-04-13
这家伙很懒,什么也没写!
有没有人啊?社区大佬来一个啊{:3_57:}
aozima
2019-04-13
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
>延时是多少啊,怎么修改? 驱动中有一个delay,可以在这里调整,让延时更加精确。 另外,调I2C非常有必要接一个逻辑分析仪。
撰写答案
登录
注册新账号
关注者
0
被浏览
3.3k
关于作者
wolegequwangge
这家伙很懒,什么也没写!
提问
2
回答
7
被采纳
0
关注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
GD32F450 片内 flash驱动适配
2
STM32H7R7运行CherryUSB
3
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
4
使用RC522软件包驱动FM1722
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
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
3
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部