你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

三创电子(Tcreate)-STM32F030调试之I2C篇  

[复制链接]
三创电子(Tcreate) 发布时间:2014-2-12 21:40
本人一直觉得I2C有点难用,特别是ST的,其实我也只用过ST的 哈哈5 _% ^$ {7 t" r0 u' {4 V1 b+ F
虽然现在公司的项目上有用到I2C,但是我对STM32F030的I2C还是有些敬畏、果不其然芯片未搞定(当然只是暂时的),于是退而求其次,用I/O模拟试试,整整弄了两个晚上才读到数据,然而当我找到问题所在时 ,我又一次的无语了……
+ m, V4 a7 X  e& e; a4 [& H下面和大家一起分享下原因:
  E2 t8 _, t" `/ I#define SDA_READ                (GPIOA->IDR &  GPIO_Pin_10) >> 10
+ Z" v( T% t8 J- C错误的接收字节代码:2 v; K4 X! P4 U6 S: R% p& ~
 <span style="color: #000000">INT8U I2C_RecByte(void)
  t: j3 G0 Y+ o( y{
5 t5 w( w- Q, {! u  INT8U i,dat=0;
& k0 U8 L& [. v! K# t3 \ INT16U uwTemp =0;! s  d) [+ S: w
 . e+ o1 E# K' S. @3 j* H4 B) A2 {$ q
  I2C_SDA_IN();  |, I: f$ J" S& j, N$ P  P' w  c
 - d4 e  @4 y- U: @9 C) l
  for(i=0;i> 10)这样至少可有保证相对于其他的语句,这是一个原子操作。
8 d% t" d8 y+ ~扯了这么多 自己都不知道主题在什么地方,写出了和大家分享下,同时自己今后也可以看看,可有起到温故知新作用!. O; y" ^1 b+ z7 M9 }  u- d
哎 固件的I2C还没有实现呢,等实现了,再来续更哈……  呵呵
6 j+ A+ q; T) \2 {* W$ ]I2C弄好有一段时间了,但是各种原因一直没有上传,现在上传,有些地方还有些模糊,还请大家一起讨论下
2 L! Z% @9 s7 q% U$ \ 

STM32F030xx_I2CTest.rar

下载

1.7 MB, 下载次数: 4568

STM32F030xx_I2CTest(GPIO).rar

下载

1.7 MB, 下载次数: 3461

赞 收藏 7 评论27 发布时间:2014-2-12 21:40

举报

27个回答
wjlchangzhou 回答时间:2018-12-20 12:51:16
楼主的硬件IIC我验证过了,是可以用的。
& S/ x  Q6 C0 |9 U9 ~2 j, TI2C_uWriteData(0XA0,0x00,16,Bufin);
5 ~/ r* L9 [, g) R( ofor(i=0;i<16;i++)Bufr[i]=0;
3 s7 b+ k+ Y. Q7 ]. H) I1 P8 HDelayms(1000);
9 W6 C5 n* _% T' x, Q5 ~I2C_uReadData(0XA1,0x00,16,Bufr);; V$ E: f$ K+ ^& `  j+ ~: R
Delayms(1000);
% s  v9 f5 d9 b- x
2 t3 S& o2 ]) w/ ?) DSLAVER ADDRESS个人觉得应该换个名字,并不是器件的地址,而是功能代码吧~
南宫北堂 回答时间:2017-6-26 09:57:47
楼主的程序有点问题吧?I2C_uWriteData(INT8U SlaveAddr,INT16U WriteAddr,INT8U WriteLen,INT8U *WriteBuf)的WriteAddr参数不起作用啊
Tcreat 回答时间:2015-10-13 10:45:18
alisa123 发表于 2015-10-13 09:04
+ `- N5 I1 G. Y: F1 x/ Z  @楼主,你好,请问你分享的stm32f030xx_I2CTest(硬件i2c)的你在板子上跑了吗?能否正常读写数据? ...

8 m/ }  c3 z, _4 }6 M可以呀
沐紫 回答时间:2014-2-13 11:01:24

RE: 三创电子(Tcreate)-STM32F030调试之I2C篇

多谢分享!早日实现你的I2C~
, H+ t/ z% h2 A# T& k% ?; K   ]* P/ O: v6 j% l# _# s1 \( A6 F
继续阅读原创汇总:3 B" X: o! P1 X  |5 @7 L
STM32F030探索套件开发日志,中文教程,使用问答80篇
咫尺天涯-鱼 回答时间:2014-3-30 09:47:54

回复: 三创电子(Tcreate)-STM32F030调试之I2C篇

    只能说是宏定义不够合理吧,我是在使用时如果要表达一个运算习惯在最外层加一个括弧,不过楼主能把遇到的问题与大家分享是比较好的,大家多多少少会在编程上有些小问题。
三创电子(Tcreate) 回答时间:2014-4-2 13:05:56

回复: 三创电子(Tcreate)-STM32F030调试之I2C篇

回复第 3 楼 于2014-03-30 09:47:54发表:
) A7 e, H: T9 `2 ^) T* T  A4 Q    只能说是宏定义不够合理吧,我是在使用时如果要表达一个运算习惯在最外层加一个括弧,不过楼主能把遇到的问题与大家分享是比较好的,大家多多少少会在编程上有些小问题。
4 b% j3 s; ?5 D# [- K. z* h 
9 X" p9 ~; J& e& K+ y! h1 g3 [% i* y/ g: t
学习了  还是要养成良好的习惯
youyou202 回答时间:2014-9-29 14:42:28

RE: 三创电子(Tcreate)-STM32F030调试之I2C篇

请问下为什么在I2C_Start, I2C_Stop,I2C_SendAck。。。里面都要加上 I2C_SDA_OUT()或者I2C_SDA_IN()呢? 9 G7 z) i: u4 G# }/ \2 f6 l
直接在初始化的时候设置为复用AF模式就可以了吧。我与24c32通讯采用的开漏输出% S3 D/ I2 q/ y7 }0 X8 q9 E
void I2C_uConfiguration(void)
- a2 }$ a7 Y$ [6 P{7 F6 E, U8 i, z. h# z
        GPIO_InitTypeDef   GPIO_uInitStructure;6 R, e6 W8 b$ H! d' x% f
        % Q: q4 g4 X9 T; m$ T
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);- i. y4 w% L+ |6 ]/ Y( ]
       
$ s5 X" @- y0 o        GPIO_uInitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;5 V; i0 w6 M+ F* F# J
        GPIO_uInitStructure.GPIO_Mode = GPIO_Mode_AF;
# ]+ k+ X4 W" I" c# K        GPIO_uInitStructure.GPIO_OType = GPIO_OType_OD;  / T/ C9 N! Y3 ^  O( S3 I6 y( k4 B$ h
        GPIO_uInitStructure.GPIO_Speed = GPIO_Speed_Level_3;  // 10M/ J8 u2 C' B% ^. H( X  T# G
        GPIO_Init(GPIOA,&amp;GPIO_uInitStructure);
" D- x$ x6 F1 P* V; l" a8 t7 i}
alisa123 回答时间:2015-10-13 09:04:26
楼主,你好,请问你分享的stm32f030xx_I2CTest(硬件i2c)的你在板子上跑了吗?能否正常读写数据?
alisa123 回答时间:2015-10-13 11:37:43
Tcreat 发表于 2015-10-13 10:45
5 X" S1 a( {: A6 [可以呀

! k. u% f& o6 I* I1 h谢谢你的分享,我好好看看,谢了
alisa123 回答时间:2015-10-14 14:17:45
楼主,你好,我看你的里面对以0x0000开始的50个数据进行写入和读取,请问你用的是哪个型号的eeprom?
alisa123 回答时间:2016-3-9 10:56:34
楼主,你好,请问你有没有用中断方式调过?
yuankunli 回答时间:2016-8-9 20:17:10
认真学习 IIC
lukgeeker 回答时间:2017-11-28 15:07:43
多谢分享!
robin97172 回答时间:2017-12-25 10:15:01
谢谢楼主分享经验
chenke9703 回答时间:2018-5-3 16:28:46
用什么从片子上看到数据的3 j6 c0 r5 k) Y+ b9 g
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版