Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
I2C_IIC
STM32F10x 的硬件 I2C 驱动问题
发布于 2018-09-27 20:03:03 浏览:3787
订阅该版
* 本帖最后由 wuhanstudio 于 2018-9-27 20:13 编辑 * 大家好, 请问 rt-thread 怎么注册硬件 I2C 总线呢? 因为我最近发现 \bsp\stm32f10x\drivers\stm32f1_i2c.c 里的驱动,注册了 i2c 总线后发送数据会死机。 不知道这是什么原因? ![FastAdmin]() 问题重现: 开发板: STM32F103RCT6 内核配置:(打开了I2C) ```$ menuconfig RT-Thread Components ---> Device Drivers --> (*) Using I2C device drivers ```编译上传固件 list_device 没有发现 i2c 设备,发现生成的 Keil 工程并没有添加 \bsp\stm32f10x\drivers\stm32f1_i2c.c ![FastAdmin]() 问题1: 发现是因为 \bsp\stm32f10x\drivers\SConscript 里其实并没有添加 stm32f1_i2c.c 的操作 尝试解决 1:手动在 Keil 里添加了 drivers\stm32f1_i2c.c,并按照函数说明在 rtconfig.h 里添加了 #define RT_USING_I2C1 ```rt_err_t stm32_i2c_register(I2C_TypeDef *I2C, rt_uint32_t bitrate, const char * i2c_bus_name)```同时在 startup.c 里添加了 I2C 初始化代码。 ```static void init_i2c1(int argc, char* argv[]) { rt_kprintf("Initializing bus
"); stm32_i2c_register(I2C1, 100000 ,"i2c1"); rt_kprintf("Initialized bus
"); } MSH_CMD_EXPORT(init_i2c1,Initialize I2c1);```再次在 msh 里调用 list_device 发现了 i2c 设备 ![FastAdmin]() 问题2:虽然成功注册了 i2c1,但是向总线发送数据会死机。 ```static void yl40_example(int argc,char *argv[]) { struct rt_i2c_bus_device *yl40_bus = RT_NULL; const char* ylname = "i2c1"; yl40_bus = rt_i2c_bus_device_find(ylname); rt_uint8_t t = 0;``` 但是同样的代码,如果用我 GPIO 软件模拟 I2C 总线是可以正常发送的。 所以我觉得是 \bsp\stm32f10x\drivers\stm32f1_i2c.c 里硬件初始化有问题,不知道这个应该怎么解决?
查看更多
11
个回答
默认排序
按发布时间排序
zhs_sky
2018-09-27
这家伙很懒,什么也没写!
STM32的硬件I2C存在BUG,稍有不慎就出问题。
wuhanstudio
2018-09-27
这家伙很懒,什么也没写!
>STM32的硬件I2C存在BUG,稍有不慎就出问题。 --- 原来是这样,请问在 rt-thread 上使用 I2C 比较好的替代方法,就只有用 GPIO 模拟 I2C 添加总线了吗? 因为如果要调用 rt-thread 的库,需要先在 msh 里 list_device 能找到 i2c1 总线。
aozima
2018-09-28
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
默认就有GPIO模拟I2C的驱动了吧?
wuhanstudio
2018-09-28
这家伙很懒,什么也没写!
>默认就有GPIO模拟I2C的驱动了吧? --- 谢谢,我看了一下,在 bsp 里 STM32F10x-HAL 确实有 GPIO 模拟 I2C的驱动,但是在标准库 STM32F10x 没有,是不是现在板级的驱动支持进度还不一致。
zhs_sky
2018-09-28
这家伙很懒,什么也没写!
>原来是这样,请问在 rt-thread 上使用 I2C 比较好的替代方法,就只有用 GPIO 模拟 I2C 添加总线了吗? 因 ... --- 一、使用模拟I2C; 二、自已重新写I2C驱动,不要使用中断,全部使用查询法。 我没用过STM32的库文件,如果需要,我可以发一个STM32的I2C驱动供你参考。
maskedbaby
2018-09-29
这家伙很懒,什么也没写!
>谢谢,我看了一下,在 bsp 里 STM32F10x-HAL 确实有 GPIO 模拟 I2C的驱动,但是在标准库 STM32F10x 没有 ... --- 我写了一个f10x-hal驱动eeprom的例子,你需要吗
wuhanstudio
2018-09-29
这家伙很懒,什么也没写!
>我写了一个f10x-hal驱动eeprom的例子,你需要吗 --- 谢谢,可以看看用 HAL 库注册硬件 I2C 的部分吗?我现在用 STM32 标准库注册的 I2C 能正常在 rt-thread 上读写,还没测试用 STM32 HAL 库注册的硬件 I2C。
maskedbaby
2018-09-29
这家伙很懒,什么也没写!
>谢谢,可以看看用 HAL 库注册硬件 I2C 的部分吗?我现在用 STM32 标准库注册的 I2C 能正常在 rt-thread ... --- f1-hal的i2c驱动可以从f4xx-hal库复制过来用
wuhanstudio
2018-09-29
这家伙很懒,什么也没写!
>f1-hal的i2c驱动可以从f4xx-hal库复制过来用 --- 谢谢,刚试了下 f4xx-hal 里的 driv_i2c.c,虽然这个其实也是用的 rt_i2c_bit_ops 软件模拟 I2C,不过确实可以正常使用,谢谢提醒 :)
xtkhsm
2018-10-09
这家伙很懒,什么也没写!
楼主 你的可以使用了吗 i2c
撰写答案
登录
注册新账号
关注者
0
被浏览
3.8k
关于作者
wuhanstudio
这家伙很懒,什么也没写!
提问
12
回答
243
被采纳
6
关注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
在用clangd开发RTT吗,快来试试如何简单获得清晰干净的工作区
2
GD32F450 片内 flash驱动适配
3
STM32H7R7运行CherryUSB
4
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
5
使用RC522软件包驱动FM1722
热门标签
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
篇文章
6
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部