打印

【请教】STM32F0的I2C的通讯速度是怎么样设置的?

[复制链接]
10547|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cy757|  楼主 | 2012-12-13 16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如:
标准总线速度 100KHz
快速总线速度 400KHz
应该怎么样设置?
时钟怎么样计算?
沙发
cy757|  楼主 | 2012-12-14 13:39 | 只看该作者
我看到文档上面有个“时序配置工具”可以计算,但是找了半天都没找到。

使用特权

评论回复
板凳
uet_cache| | 2012-12-14 15:49 | 只看该作者
使用官方库,有个定义直接是设置速度的。

I2C_InitTypeDef  I2C_InitStructure;
  
  I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
  I2C_InitStructure.I2C_OwnAddress1 = I2C_SLAVE_ADDRESS7;
  I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  I2C_InitStructure.I2C_ClockSpeed = I2C_SPEED;
  
  I2C_Init(sEE_I2C, &I2C_InitStructure);       
  I2C_Cmd(sEE_I2C, ENABLE);  

、、、、、、、、、、、、、、、
#define I2C_SPEED               200000

使用特权

评论回复
地板
uet_cache| | 2012-12-14 15:50 | 只看该作者
还是用模拟的好一些,集成的I2C, 读写次数多了,容易出问题。

使用特权

评论回复
5
cy757|  楼主 | 2012-12-14 15:53 | 只看该作者
uet_cache 发表于 2012-12-14 15:49
使用官方库,有个定义直接是设置速度的。

I2C_InitTypeDef  I2C_InitStructure;

你的是F1的库,
F0的库是这样的。
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  I2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
  I2C_InitStructure.I2C_DigitalFilter = 0x00;
  I2C_InitStructure.I2C_OwnAddress1 = 0xA0;
  I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  I2C_InitStructure.I2C_Timing = sEE_I2C_TIMING;
  
  /* Apply sEE_I2C configuration after enabling it */
  I2C_Init(I2C2, &I2C_InitStructure);

使用特权

评论回复
6
uet_cache| | 2012-12-14 16:09 | 只看该作者
楼上说的对。

使用特权

评论回复
7
cy757|  楼主 | 2012-12-28 17:30 | 只看该作者
自己再顶起来

使用特权

评论回复
8
明月小厨| | 2014-1-28 00:33 | 只看该作者
这个参数怎么调我没查到相关的寄存器,但有个库可以用来直接设置;你希望的波特率填进去就行了,如1KHZ或10KHZ等;

使用特权

评论回复
9
tongmingsu| | 2017-2-26 09:46 | 只看该作者
5楼,请问I2C_InitStructure.I2C_Timing = sEE_I2C_TIMING;这个值是怎么设定的呢?

使用特权

评论回复
10
tongmingsu| | 2017-2-26 09:47 | 只看该作者
@cy757 请问I2C_InitStructure.I2C_Timing = sEE_I2C_TIMING;这个值是怎么设定的呢?

使用特权

评论回复
11
sp@cai| | 2017-10-13 17:33 | 只看该作者
其中时间寄存器(I2C_TIMINGR_REGISTER)的值的设置需要参考ST公司的配置工具(I2C_Timing_Config_Tool)。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的技术博客http://blog.csdn.net/cy757/ 博客关键词:STM32的USB、TCP,wince,C#,VC

103

主题

161

帖子

0

粉丝